delproplist(3)delproplist(3)NAME
delproplist, fdelproplist - removes Extended File Attributes from a
file
SYNOPSIS
#include <sys/proplist.h>
int delproplist(
char *path,
int follow,
struct proplistname_args *args ); int fdelproplist(
int fd,
struct proplistname_args *args );
PARAMETERS
Points to a file whose Extended File Attributes are to be removed from
its Property List. If non-zero, specifies that if the last component
in path is a symbolic link, then the link should be traversed. Points
to the proplistname_args structure, defined in sys/proplist.h, that
contains the following members: pl_mask -- Contains system-wide
Extended File Attributes.
Note that if you are deleting all the Extended File Attributes
of a file, pl_mask must equal PLE_FLAG_ALL defined in sys/pro‐
plist.h. Also, if you are deleting Extended File Attribute
options that match certain system-wide Extended File Attributes,
the value of pl_mask should be formed by ORing the desired val‐
ues of the system-wide Extended File Attributes. pl_numnames --
Contains the number of Extended File Attributes names held in
the names array, pl_names. pl_names -- Contains a counted array
of Extended File Attribute names.
Note that the Extended File Attribute names are null terminated
ASCII strings and that the last element of the array must be a
null pointer. Also, a null array pointer indicates all Extended
File Attributes. Specifies a file descriptor that points to a
file whose Extended File Attributes are to be removed from its
Property List. This parameter is used with the fdelproplist()
function.
DESCRIPTION
The delproplist() function removes one or more Extended File
Attributes, whose names are specified in the structure pointed to by
args, from the Property List of the file pointed to by path. 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 sys‐
tem (for example, ACLs and privileges) or by a user-level application
(for example, PC File Attributes). Note that if you specify a non-exis‐
tent Extended File Attribute name, the function will return success‐
fully.
The fdelproplist() function behaves the same as delproplist(), except
that it operates on a file descriptor rather than a pointer to a file.
RESTRICTIONS
If a system failure occurs when the Extended File Attributes are being
removed from disk, one of the three following conditions may apply to
each Extended File Attribute because there are no ordering guarantees
when several Extended File Attributes are being updated: The Extended
File Attribute was not removed from the disk. The Extended File
Attribute was removed from the disk.
RETURN VALUES
If successful, zero is returned, the specified Extended File Attribute
is deleted from disk, and the change time of the file pointed to by
path is marked for update.
If unsuccessful, the integer -1 is returned and errno is set to indi‐
cate the error.
ERRORS
In addition to errors associated with open(2), the function will fail
if: Search permission was denied for a directory in path.
The calling program was not the owner of the file and the
process does not have the appropriate system privilege. A prob‐
lem was encountered with the Extended File Attribute name. A
problem was encountered with the Extended File Attribute name.
An error occurred while reading or writing some portion of the
Property List. The Extended File Attribute could not be associ‐
ated with the file pointed to by path. The calling program did
not have the appropriate system privilege to access the
requested Extended File Attribute, for example, DEC_AUDIT_PRO‐
PLISTFLAG. The file system is mounted read-only.
EXAMPLES
#include <sys/proplist.h> main() { char *ptr, *buf, *name, *value; int
*value_len, *options, buffer_size, min_buffer_size, ret, nbytes; struct
proplistname_args entry_names; static char *names[] = { "pri‐
mary_name", "secondary_name",
};
. . .
/*
* Delete the property list entries
*/ if (delproplist("/tmp/foo", 1, entry_names)) perror("delpro‐
plist"); free(buf); }
SEE ALSO
Functions: open(2), add_proplist_entry(3), delproplist(3), fdelpro‐
plist(3), fgetproplist(3), fsetproplist(3), get_proplist_entry(3), get‐
proplist(3), setproplist(3), sizeof_proplist_entry(3).
Files: proplist(4), sys/proplist.h.
delproplist(3)