CAP_INIT(3) Linux Programmer s Manual CAP_INIT(3)
NAME cap_init, cap_free, cap_dup - capability data object storage management
SYNOPSIS #include <sys/capability.h>
int cap_free(void *obj_d);
cap_t cap_dup(cap_t cap_p);
USAGE cc ... -lcap
DESCRIPTION The capabilities associated with a file or process are never edited directly. Instead, working storage is allocated to contain a represen- tation of the capability state. Capabilities are edited and manipu- lated only within this working storage area. Once editing of the capa- bility state is complete, the updated capability state is used to replace the capability state associated with the file or process.
cap_init creates a capability state in working storage and return a pointer to the capability state. The initial value of all flags are cleared. The caller should free any releasable memory, when the capa- bility state in working storage is no longer required, by calling cap_free with the cap_t as an argument.
cap_free liberates any releasable memory that has been allocated to the capability state identified by obj_d. The obj_d argument may identify either a cap_t entity, or a char * entity allocated by the cap_to_text function.
cap_dup returns a duplicate capability state in working storage given by the source object cap_p, allocating any memory necessary, and returning a pointer to the newly created capability state. Once dupli- cated, no operation on either capability state affects the other in any way.
RETURN VALUE cap_init and cap_dup return a non-NULL value on success, and NULL on failure.
cap_free returns zero on success, and -1 on failure.
On failure, errno(3) is set to EINVAL, or ENOMEM.
CONFORMING TO These functions are specified by POSIX.1e.
SEE ALSO cap_clear(3), cap_copy_ext(3), cap_from_text(3), cap_get_file(3), cap_get_proc(3)
26th May 1997 CAP_INIT(3)