Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

proplist(4) [osf1 man page]

proplist(4)						     Kernel Interfaces Manual						       proplist(4)

NAME
proplist - The storing, parsing, and retrieving of Extended File Attributes DESCRIPTION
Tru64 UNIX supports the storing, parsing, and retrieving of Extended File Attributes. An Extended File Attribute is a name and value pair that is contained in a variable-sized structure called a Property List. A Property List is part of a file's metadata and can contain abstract name and value pairs (Extended File Attributes) that can be set either by the operating system (for example, ACLs and privileges) or by a user-level application (for example, PC File Attributes). Since Extended File Attributes are treated as an extension to a file's metadata, they are synchronously updated, thereby ensuring consis- tency. Note that Extended File Attributes set by user-level applications are treated as opaque and can be virtually anything. To ensure that all Property List names are unique, you must register your Property List names with Compaq. Those Property List names with a prefix are reserved by Compaq. In the case of conflicts, Compaq reserves the right to arbitrate the naming conventions of Property Lists. To register a Property List name, send a request by network mail to or write to: Tru64 UNIX File System Group ATTN: Property List Administrator Compaq Computer Corporation 110 Spit Brook Road Nashua, NH. 03062-2698 M/S ZKO3-3/U14 Several user-level routines, listed in the Related Information section, work together to manipulate Extended File Attributes. For example: To set attributes, you use the sizeof_proplist_entry(3) and add_proplist_entry(3) routines to initialize the Extended File Attribute buffer passed to setproplist(3) or fsetproplist(3). To fetch attributes, you use getproplist(3) or fgetproplist(3). To parse the attribute buf- fer returned by setproplist(3) or fsetproplist(3), use the get_proplist_entry(3) routine. The format of the Extended File Attributes buffer, the values of the system-wide properties, and the format of the Property List structures are all defined in sys/proplist.h. NOTES
Extended File Attributes are supported by the Advanced File System (AdvFS), the UNIX File System (UFS), and the Network File System (NFS). The latter through the use of the proplistd daemon and the mount -o proplist command. The archive utilities and support files with Extended File Attributes. However, third-party archive utilities may not support Extended File Attributes and, consequently, if they are used on files with Extended File Attributes, the Extended File Attributes will be lost. RELATED INFORMATION
Functions: add_proplist_entry(3), delproplist(3), fdelproplist(3), fgetproplist(3), fsetproplist(3), get_proplist_entry(3), getproplist(3), setproplist(3), sizeof_proplist_entry(3). Files: libproplist.a, libproplist.so, sys/proplist.h, acl(4). Daemons: proplistd(8). delim off proplist(4)

Check Out this Related Man Page

add_proplist_entry(3)					     Library Functions Manual					     add_proplist_entry(3)

NAME
add_proplist_entry - Adds an Extended File Attribute to the Extended File Attribute buffer SYNOPSIS
#include <sys/proplist.h> int add_proplist_entry ( char *name, int flags, int value_size, char *value, char **buf- ptr ); PARAMETERS
Points to the Extended File Attribute name, a null terminated ASCII string. Specifies system-wide attributes for Extended File Attribute entries. These system-wide attributes are defined in sys/proplist.h. Specifies the size in bytes of the Extended File Attribute value. Points to the value of the Extended File Attribute. Points to the Extended File Attribute buffer. DESCRIPTION
The add_proplist_entry function initializes an Extended File Attribute buffer, pointed to by **bufptr, with the Extended File Attribute specified by the *name and *value parameters. The function can be called repeatedly, because it advances the Extended File Attribute buf- fer pointer **bufptr to the end of the current entry. An Extended File Attribute is a name and value pair that is contained in a variable- sized structure called a Property List. A Property List is part of a file's metadata and can contain abstract name and value pairs (Extended File Attributes) that can be set either by the operating system (for example, ACLs and privileges) or by a user-level application (for example, PC File Attributes). Although not a requirement, it is recommended that you use the sizeof_proplist_entry(3) and add_proplist_entry(3) functions to initialize the Extended File Attribute buffer passed to setproplist(3) and fsetproplist(3). EXAMPLES
#include <sys/proplist.h> main() { char *ptr, *buf, *name, *value; int *value_len, *flags, buffer_size, min_buffer_size, ret, nbytes; struct pro- plistname_args; static char *names[] = { "primary_name", "secondary_name", "" }; /* * How big a buffer do I need to store my name and value * pair in a property list ? */ buffer_size = sizeof_proplist_entry("primary_name", 18); buffer_size += sizeof_proplist_entry("secondary_name", 13); /* * Malloc the buffer */ buf = ptr = (char *)malloc(buffer_size); /* * Call add_proplist_entry to initialize the buffer with * the first name and value pair. */ ret = add_proplist_entry("primary_name", 0, 18, "Primary Name Value", &ptr); /* * Call add_proplist_entry to initialize the buffer with * the second name and value pair. */ ret += add_proplist_entry("secondary_name", 0, 13, "Another Value", &ptr); if (ret != buffer_size) { printf("ret %d != buffer_size %d0, ret, buffer_size); free(buf, buffer_size); exit(1); } /* * Buffer now contains both name and value pairs. Call setproplist * system call to actually associate name and value pairs to * file. */ nbytes = setproplist("/tmp/foo", 1, buffer_size, buf); if (nbytes < 0 || nbytes != buffer_size) { perror("setproplist"); free(buf); exit(1); } . . . RETURN VALUES
If successful, the function returns the number of bytes copied into the Extended File Attribute buffer. RELATED INFORMATION
Functions: delproplist(3), fdelproplist(3), fgetproplist(3), fsetproplist(3), get_proplist_entry(3), getproplist(3), setproplist(3), sizeof_proplist_entry(3) Files: proplist(4) delim off add_proplist_entry(3)
Man Page