delproplist, fdelproplist - removes Extended File
Attributes from a file
#include <sys/proplist.h>
int delproplist(
char *path,
int follow,
struct proplistname_args *args ); int fdelproplist(
int fd,
struct proplistname_args *args );
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/proplist.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 values 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.
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 system (for example, ACLs and
privileges) or by a user-level application (for example,
PC File Attributes). Note that if you specify a non-existent
Extended File Attribute name, the function will
return successfully.
The fdelproplist() function behaves the same as delproplist(),
except that it operates on a file descriptor
rather than a pointer to a file.
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.
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 indicate the error.
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 problem 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 associated 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_PROPLISTFLAG. The file system is mounted
read-only.
#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[] = { "primary_name",
"secondary_name",
};
. . .
/*
* Delete the property list entries
*/ if (delproplist("/tmp/foo", 1, entry_names)) perror("delproplist");
free(buf); }
Functions: open(2), 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: proplist(4), sys/proplist.h.
delproplist(3)
[ Back ] |