home *** CD-ROM | disk | FTP | other *** search
-
-
-
- AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222))))
-
-
-
- NNNNAAAAMMMMEEEE
- attr_set, attr_setf - set the value of a user attribute of a filesystem
- object
-
- CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////aaaattttttttrrrriiiibbbbuuuutttteeeessss....hhhh>>>>
-
- iiiinnnntttt aaaattttttttrrrr____sssseeeetttt ((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ppppaaaatttthhhh,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****aaaattttttttrrrrnnnnaaaammmmeeee,,,,
- ccccoooonnnnsssstttt cccchhhhaaaarrrr ****aaaattttttttrrrrvvvvaaaalllluuuueeee,,,, ccccoooonnnnsssstttt iiiinnnntttt vvvvaaaalllluuuueeeelllleeeennnnggggtttthhhh,,,,
- iiiinnnntttt ffffllllaaaaggggssss))));;;;
-
- iiiinnnntttt aaaattttttttrrrr____sssseeeettttffff ((((iiiinnnntttt ffffdddd,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****aaaattttttttrrrrnnnnaaaammmmeeee,,,,
- ccccoooonnnnsssstttt cccchhhhaaaarrrr ****aaaattttttttrrrrvvvvaaaalllluuuueeee,,,, ccccoooonnnnsssstttt iiiinnnntttt vvvvaaaalllluuuueeeelllleeeennnnggggtttthhhh,,,,
- iiiinnnntttt ffffllllaaaaggggssss))));;;;
-
- OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
- The _a_t_t_r group of system calls implement the ability for a user to attach
- name/value pairs to objects within the filesystem.
-
- They could be used to store meta-information about the file. For example
- "character-set=kanji" could tell a document browser to use the Kanji
- character set when displaying that document and "thumbnail=..." could
- provide a reduced resolution overview of a high resolution graphic image.
-
- The _n_a_m_e_s can be up to MAXNAMELEN bytes in length, terminated by the
- first 0 byte. The intent is that they be printable ASCII (or other
- character set) names for the attribute.
-
- The _v_a_l_u_e_s can be up to ATTR_MAX_VALUELEN (currently 64KB) of arbitrary
- binary data.
-
- Attributes can be attached to all types of inodes: regular files,
- directories, symbolic links, device nodes, etc.
-
- There are 2 disjoint attribute name spaces associated with every
- filesystem object. They are the rrrrooooooootttt and uuuusssseeeerrrr address spaces. The rrrrooooooootttt
- address space is accessible only to privileged users, and only then by
- specifying a flag argument to the function call. A privileged user can
- be either the superuser in an IIIIRRRRIIIIXXXX environment, or a user with
- CCCCAAAAPPPP____DDDDEEEEVVVVIIIICCCCEEEE____MMMMGGGGTTTT capability. Other users will not see or be able to modify
- attributes in the rrrrooooooootttt address space. The uuuusssseeeerrrr address space is
- protected by the normal file permissions mechanism, so the owner of the
- file can decide who is able to see and/or modify the value of attributes
- on any particular file.
-
- Attributes are currently fully supported only in the XFS and CXFS
- filesystem types. Other filesystem types may provide a partial
- implementation.
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222))))
-
-
-
- DESCRIPTION
- The _a_t_t_r__s_e_t and _a_t_t_r__s_e_t_f functions provide a way to create attributes
- and set/change their values.
-
- _P_a_t_h points to a path name for a filesystem object, and _f_d refers to the
- file descriptor associated with a file. If the attribute _a_t_t_r_n_a_m_e does
- not exist, an attribute with the given name and value will be created and
- associated with that indicated filesystem object. If an attribute with
- that name already exists on that filesystem object, the existing value is
- replaced with the new value given in this call. The new attribute value
- is copied from the _a_t_t_r_v_a_l_u_e buffer for a total of _v_a_l_u_e_l_e_n_g_t_h bytes.
- The _f_l_a_g_s argument can contain the following symbols bitwise OR'ed
- together:
-
- ATTR_ROOT
- Look for _a_t_t_r_n_a_m_e in the rrrrooooooootttt address space, not in the uuuusssseeeerrrr address
- space. (limited to use by super-user only)
-
- ATTR_DONTFOLLOW
- Do not follow symbolic links when resolving a _p_a_t_h on an _a_t_t_r__s_e_t
- function call. The default is to follow symbolic links.
-
- ATTR_CREATE
- Return an error (EEXIST) if an attribute of the given name already
- exists on the indicated filesystem object, otherwise create an
- attribute with the given name and value. This flag is used to
- implement a pure create operation, without this flag _a_t_t_r__s_e_t will
- create the attribute if it does not already exist. An error
- (EINVAL) will be returned if both ATTR_CREATE and ATTR_REPLACE are
- set in the same call.
-
- ATTR_REPLACE
- Return an error (ENOATTR) if an attribute of the given name does not
- already exist on the indicated filesystem object, otherwise replace
- the existing attribute's value with the given value. This flag is
- used to implement a pure replacement operation, without this flag
- _a_t_t_r__s_e_t will create the attribute if it does not already exist. An
- error (EINVAL) will be returned if both ATTR_CREATE and ATTR_REPLACE
- are set in the same call.
-
- _a_t_t_r__s_e_t will fail if one or more of the following are true:
-
- [ENOATTR] The attribute name given is not associated with the
- indicated filesystem object and the ATTR_REPLACE flag
- bit was set.
-
- [E2BIG] The value of the given attribute is too large, it
- exceeds the maximum allowable size of an attribute
- value.
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222))))
-
-
-
- [EEXIST] The attribute name given is already associated with the
- indicated filesystem object and the ATTR_CREATE flag bit
- was set.
-
- [ENOENT] The named file does not exist.
-
- [EPERM] The effective user ID does not match the owner of the
- file and the effective user ID is not super-user.
-
- [ENOTDIR] A component of the path prefix is not a directory.
-
- [EACCES] Search permission is denied on a component of the path
- prefix.
-
- [EINVAL] A bit was set in the _f_l_a_g argument that is not defined
- for this system call, or both the ATTR_CREATE and
- ATTR_REPLACE flags bits were set.
-
- [EFAULT] _P_a_t_h, _a_t_t_r_n_a_m_e, or _a_t_t_r_v_a_l_u_e points outside the
- allocated address space of the process.
-
- [ELOOP] A path name lookup involved too many symbolic links.
-
- [ENAMETOOLONG] The length of _p_a_t_h exceeds {_M_A_X_P_A_T_H_L_E_N}, or a pathname
- component is longer than {_M_A_X_N_A_M_E_L_E_N}.
-
- _a_t_t_r__s_e_t_f will fail if:
-
- [ENOATTR] The attribute name given is not associated with the
- indicated filesystem object and the ATTR_REPLACE flag bit
- was set.
-
- [E2BIG] The value of the given attribute is too large, it exceeds
- the maximum allowable size of an attribute value.
-
- [EEXIST] The attribute name given is already associated with the
- indicated filesystem object and the ATTR_CREATE flag bit
- was set.
-
- [EINVAL] A bit was set in the _f_l_a_g argument that is not defined for
- this system call, or both the ATTR_CREATE and ATTR_REPLACE
- flags bits were set, or _f_d refers to a socket, not a file.
-
- [EFAULT] _A_t_t_r_n_a_m_e, or _a_t_t_r_v_a_l_u_e points outside the allocated
- address space of the process.
-
- [EBADF] _F_d does not refer to a valid descriptor.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- attr(1),
- attr_get(2), attr_getf(2),
- attr_list(2), attr_listf(2)
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____SSSSEEEETTTT((((2222))))
-
-
-
- attr_multi(2), attr_multif(2)
- attr_remove(2), attr_removef(2),
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- Upon successful completion, a value of 0 is returned. Otherwise, a value
- of -1 is returned and _e_r_r_n_o is set to indicate the error.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-