fsetattr man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

fgetattr(3C)		 Standard C Library Functions		  fgetattr(3C)

NAME
       fgetattr,   fsetattr,   getattrat,  setattrat  -	 get  and  set	system
       attributes

SYNOPSIS
       #include <fcntl.h>
       #include <sys/types.h>
       #include <attr.h>
       #include <sys/nvpair.h>

       int fgetattr(int fildes, xattr_view_t view,nvlist_t **response);

       int fsetattr(int fildes, xattr_view_t view,nvlist_t *request)

       int getattrat(int fildes, xattr_view_t view, const char *filename,
	    nvlist_t **response);

       int setattrat(int fildes, xattr_view_t view, const char *filename,
	    nvlist_t *request);

DESCRIPTION
       The fgetattr() function obtains an nvlist of system attribute  informa‐
       tion about an open file object specified by the file descriptor fildes,
       obtained from a successful  open(2),  creat(2),	dup(2),	 fcntl(2),  or
       pipe(2) function.

       The getattrat() function first opens the extended attribute file speci‐
       fied by filename in the already opened file directory object  specified
       by  fildes.  It then retrieves an nvlist of system attributes and their
       values from filename.

       The response argument is allocated by either fgetattr() or getattrat().
       The  application	 must call nvlist_free(3NVPAIR) to deallocate the mem‐
       ory.

       Upon successful completion, the nvlist will contain one nvpair for each
       of  the	system attributes associated with view.	 The list of views and
       the attributes associated with each view are  listed  below.   Not  all
       underlying  file	 systems  support  all	views  and all attributes. The
       nvlist will not contain an nvpair for any attribute  not	 supported  by
       the underlying filesystem.

       The fsetattr() function uses the nvlist pointed to by request to update
       one or more of the system attribute's information about	an  open  file
       object  specified  by  the file descriptor fildes, obtained from a suc‐
       cessful open(), creat(), dup(), fcntl(), or pipe() function. The setat‐
       trat()  function	 first	opens the extended attribute file specified by
       filename in the already	opened	file  directory	 object	 specified  by
       fildes.	It then uses the nvlist pointed to by request to update one or
       more of the system attributes of filename.

       If completion is not successful then no system attribute information is
       updated.

       The  following  chart  lists the supported views, attributes, and  data
       types for each view:

	       View		  Attribute		Data type
       ────────────────────────────────────────────────────────────────
       XATTR_VIEW_READONLY    A_FSID		   uint64_value
			      A_OPAQUE		   boolean_value
			      A_AV_SCANSTAMP	   uint8_array[]
       XATTR_VIEW_READWRITE   A_READONLY	   boolean_value
			      A_HIDDEN		   boolean_value
			      A_SYSTEM		   boolean_value
			      A_ARCHIVE		   boolean_value
			      A_CRTIME		   uint64_array[2]
			      A_NOUNLINK	   boolean_value
			      A_IMMUTABLE	   boolean_value
			      A_APPENDONLY	   boolean_value
			      A_NODUMP		   boolean_value
			      A_AV_QUARANTINED	   boolean_value
			      A_AV_MODIFIED	   boolean_value
			      A_OWNERSID	   nvlist composed of
						   uint32_value	  and
						   string
			      A_GROUPSID	   nvlist composed of
						   uint32_value	  and
						   string

RETURN VALUES
       Upon successful completion, 0 is returned. Otherwise, -1	  is  returned
       and errno is set to indicate the error.

ERRORS
       The  fgetattr(),	 getattrat(),  fsetattr(),  and setattrat(), functions
       will fail if:

       EBADF	 The fildes argument is not a valid open file descriptor.

       EINVAL	 The underlying file system does  not  support	extended  file
		 attributes.

       EIO	 An error occurred while reading from the file system.

       The getattrat() and setattrat() functions will fail if:

       EACCES	 Search permission or write permission for filename is denied.

       ENOENT	 The  filename	argument does not name an existing file in the
		 extended attribute directory represented by fildes.

       EPERM	 There are insufficient privileges to manipulate attributes.

EXAMPLES
       Example 1 Obtain an nvlist of readonly system attributes	 for  an  open
       file object.

       Use  fgetattr()	to  obtain an nvlist of the readonly system attributes
       for the open file object represented by file descriptor fildes.

	 #include <fcntl.h>
	 #include <sys/types.h>
	 #include <attr.h>
	 #include <sys/nvpair.h>

	 nvlist_t *response;
	 nvpair_t *pair = NULL;

	 if (fgetattr(fildes, XATTR_VIEW_READONLY, &response)) {
		      exit(1);
	 }
	 while (pair = nvlist_next_nvpair(response, pair)) {
	     .
	     .
	     .
	 }
	 nvlist_free(response);

       Example 2 Set the A_READONLY system attribute on an open file object.

       Use fsetattr() to set the A_OPAQUE system attribute on  the  open  file
       object represented by file descriptor fildes.

	 nvlist_t *request;
	 nvpair_t *pair = NULL;

	 if (nvlist_alloc(&request, NV_UNIQUE_NAME, 0) != 0) {
		     exit(1);
	 }
	 if (nvlist_add_boolean_value(request, A_READONLY, 1) != 0) {
		     exit(1);
	 }
	 if (fsetattr(fildes, XATTR_VIEW_READWRITE, request)) {
		     exit(1);
	 }

       Example	3  Obtain  an nvlist of the read/write system attributes for a
       file.

       Use getattrat() to obtain an nvlist of the read/write system attributes
       for the file named xattrfile in the extended attribute directory of the
       open file represented by file descriptor fildes.

	 nvlist_t *response;
	 nvpair_t *pair = NULL;

	 if (getattrat(fildes, XATTR_VIEW_READWRITE, "file", &response)) {
		      exit(1);
	 }
	 while (pair = nvlist_next_nvpair(response, pair)) {
	     .
	     .
	     .
	 }
	 nvlist_free(response);

       Example 4 Set the A_APPENDONLY system attribute on a file.

       Use setattrat() to set the A_APPENDONLY system attribute	 on  the  file
       named  file in the extended attribute directory of the open file repre‐
       sented by file descriptor fildes.

	 nvlist_t *request;
	 nvpair_t *pair = NULL;

	 if (nvlist_alloc(&request, NV_UNIQUE_NAME, 0) != 0) {
		     exit(1);
	 }
	 if (nvlist_add_boolean_value(request, A_APPENDONLY, 1) != 0) {
		     exit(1);
	 }
	 if (setattrat(fildes, XATTR_VIEW_READWRITE, "file", request)) {
		     exit(1);
	      }

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Committed			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │Safe			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       creat(2), dup(2), fcntl(2),  fstat(2),  fstatat(2),  open(2),  pipe(2),
       libnvpair(3LIB), attributes(5), fsattr(5)

SunOS 5.11			  4 Aug 2008			  fgetattr(3C)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net