Provided by: libcap-dev_2.44-1ubuntu0.22.04.1_amd64 bug

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);

       Link with -lcap.

DESCRIPTION

       The  capabilities  associated  with a file or process are never edited directly.  Instead,
       working storage is  allocated  to  contain  a  representation  of  the  capability  state.
       Capabilities  are  edited  and  manipulated  only  within this working storage area.  Once
       editing of the capability 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 returns a pointer to the
       capability state.  The initial value of all flags are cleared.  The caller should free any
       releasable  memory, when the capability 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  duplicated,  no  operation  on  either  capability  state
       affects  the other in any way.  When the duplicated capability state in working storage is
       no longer required, the caller should free any releasable  memory  by  calling  cap_free()
       with the cap_t as an argument.

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 is set to EINVAL or ENOMEM.

CONFORMING TO

       These functions are specified in the withdrawn POSIX.1e draft specification.

SEE ALSO

       libcap(3),     cap_clear(3),     cap_copy_ext(3),    cap_from_text(3),    cap_get_file(3),
       cap_get_proc(3), capabilities(7)

                                            2008-05-11                                CAP_INIT(3)