| EXTATTR_GET_FILE(2) | System Calls Manual | EXTATTR_GET_FILE(2) | 
extattr_get_fd, extattr_set_fd,
  extattr_delete_fd,
  extattr_list_fd,
  extattr_get_file,
  extattr_set_file,
  extattr_delete_file,
  extattr_list_file,
  extattr_get_link,
  extattr_set_link,
  extattr_delete_link,
  extattr_list_link —
#include <sys/types.h>
#include <sys/extattr.h>
ssize_t
  
  extattr_get_fd(int
    fd, int
    attrnamespace, const char
    *attrname, void
    *data, size_t
    nbytes);
int
  
  extattr_set_fd(int
    fd, int
    attrnamespace, const char
    *attrname, const void
    *data, size_t
    nbytes);
int
  
  extattr_delete_fd(int
    fd, int
    attrnamespace, const char
    *attrname);
ssize_t
  
  extattr_list_fd(int
    fd, int
    attrnamespace, void
    *data, size_t
    nbytes);
ssize_t
  
  extattr_get_file(const
    char *path, int
    attrnamespace, const char
    *attrname, void
    *data, size_t
    nbytes);
int
  
  extattr_set_file(const
    char *path, int
    attrnamespace, const char
    *attrname, const void
    *data, size_t
    nbytes);
int
  
  extattr_delete_file(const
    char *path, int
    attrnamespace, const char
    *attrname);
ssize_t
  
  extattr_list_file(const
    char *path, int
    attrnamespace, void
    *data, size_t
    nbytes);
ssize_t
  
  extattr_get_link(const
    char *path, int
    attrnamespace, const char
    *attrname, void
    *data, size_t
    nbytes);
int
  
  extattr_set_link(const
    char *path, int
    attrnamespace, const char
    *attrname, const void
    *data, size_t
    nbytes);
int
  
  extattr_delete_link(const
    char *path, int
    attrnamespace, const char
    *attrname);
ssize_t
  
  extattr_list_link(const
    char *path, int
    attrnamespace, void
    *data, size_t
    nbytes);
name=value” pairs within a set of
  namespaces.
The extattr_get_file() system call
    retrieves the value of the specified extended attribute into a buffer
    pointed to by data of size
    nbytes. The extattr_set_file()
    system call sets the value of the specified extended attribute to the data
    described by data. The
    extattr_delete_file() system call deletes the
    extended attribute specified. The
    extattr_list_file() returns a list of attributes
    present in the requested namespace. Each list entry consists of a single
    byte containing the length of the attribute name, followed by the attribute
    name. The attribute name is not terminated by ASCII 0 (nul). The
    extattr_get_file() and
    extattr_list_file() calls consume the
    data and nbytes arguments in the
    style of read(2);
    extattr_set_file() consumes these arguments in the
    style of write(2).
If data is NULL in a
    call to extattr_get_file() then the size of defined
    extended attribute data will be returned, rather than the quantity read,
    permitting applications to test the size of the data without performing a
    read.
The extattr_delete_link(),
    extattr_get_link(), and
    extattr_set_link() system calls behave in the same
    way as their _file counterparts, except that they do not follow
  symlinks.
The extattr_get_fd(),
    extattr_set_fd(), and
    extattr_delete_fd() calls are identical to their
    “_file” counterparts except for the
    first argument. The “_fd” functions
    take a file descriptor, while the
    “_file” functions take a path. Both
    arguments describe a file associated with the extended attribute that should
    be manipulated.
The following arguments are common to all the system calls described here:
Named extended attribute semantics vary by file system implementing the call. Not all operations may be supported for a particular attribute. Additionally, the format of the data in data is attribute-specific.
For more information on named extended attributes, please see extattr(9).
extattr_get_file() and
  extattr_set_file() calls return the number of bytes
  that were read or written from the data, respectively,
  or if data was NULL, then
  extattr_get_file() returns the number of bytes
  available to read. If any of the calls are unsuccessful, the value -1 is
  returned and the global variable errno is set to
  indicate the error.
  
  The extattr_delete_file() function returns the
    value 0 if successful; otherwise the value -1 is returned and
    the global variable errno is set to indicate the
    error.
EFAULT]ENAMETOOLONG]EXTATTR_MAXNAMELEN.The extattr_get_fd(),
    extattr_set_fd(), and
    extattr_delete_fd() system calls may also fail
  if:
EBADF]Additionally, the extattr_get_file(),
    extattr_set_file(), and
    extattr_delete_file() calls may also fail due to the
    following errors:
EACCES]ENAMETOOLONG]NAME_MAX}
      characters, or an entire path name exceeded
      {PATH_MAX} characters.ENOENT]ENOTDIR]Note that previous versions of this man page incorrectly stated
    that extattr_list_file() returned a list of
    attribute names separated by ASCII 0 (nul).
| August 3, 2011 | NetBSD 9.4 |