cap_dup
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>
cap_t cap_init(void);
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)