Manual Page Result
0
Command: add_proplist_entry | Section: 3 | Source: Digital UNIX | File: add_proplist_entry.3.gz
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 en-
tries. These system-wide attributes are defined in sys/pro-
plist.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 speci-
fied by the *name and *value parameters. The function can be called
repeatedly, because it advances the Extended File Attribute buffer
pointer **bufptr to the end of the current entry. An Extended File At-
tribute 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 exam-
ple, ACLs and privileges) or by a user-level application (for example,
PC File Attributes).
Although not a requirement, Digital recommends that you use the
sizeof_proplist_entry(3) and add_proplist_entry(3) functions to ini-
tialize 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", "sec-
ondary_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, "An-
other 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: add_proplist_entry(3), delproplist(3), fdelproplist(3),
fgetproplist(3), fsetproplist(3), get_proplist_entry(3), getpro-
plist(3), setproplist(3), sizeof_proplist_entry(3).
Files: proplist(4), sys/proplist.h.
delim off
add_proplist_entry(3)