ea_set_item(3exacct) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ea_set_item(3exacct)

ea...m(3EXACCT)Extended Accounting File Access Library Functionsea...m(3EXACCT)

NAME
       ea_set_item,  ea_alloc,  ea_strdup, ea_set_group, ea_match_object_cata‐
       log,  ea_attach_to_object,  ea_attach_to_group,  ea_free,   ea_strfree,
       ea_free_item,  ea_free_object  -  create, destroy and manipulate exacct
       objects

SYNOPSIS
       cc [ flag... ] file... -lexacct [ library... ]
       #include <exacct.h>

       int ea_set_item(ea_object_t *obj, ea_catalog_t tag, void *value,
            size_t valsize);


       void *ea_alloc(size_t size);


       char *ea_strdup(char *ptr);


       int ea_set_group(ea_object_t *obj, ea_catalog_t tag);


       int ea_match_object_catalog(ea_object_t *obj, ea_catalog_t catmask);


       void ea_attach_to_object(ea_object_t *head_obj, ea_object_t *obj);


       void ea_attach_to_group(ea_object_t *group_obj, ea_object_t *obj);


       void ea_free(void *ptr, size_t size);


       void ea_strfree(char *ptr);


       int ea_free_item(ea_object_t *obj, int flag);


       void ea_free_object(ea_object_t *obj, int flag);

DESCRIPTION
       The ea_alloc() function allocates a block of memory  of  the  requested
       size.  This  block can be safely passed to libexacct functions, and can
       be safely freed by any of the ea_free() functions.


       The ea_strdup() function can be used to duplicate a string that  is  to
       be stored inside an ea_object_t structure.


       The ea_set_item() function assigns the given exacct object to be a data
       item  with  value set according to the remaining arguments. For buffer-
       based data values (EXT_STRING, EXT_EXACCT_OBJECT, and EXT_RAW), a  copy
       of  the  passed  buffer is taken. In the case of EXT_EXACCT_OBJECT, the
       passed  buffer  should  be  a  packed  exacct  object  as  returned  by
       ea_pack_object(3EXACCT). Any item assigned with ea_set_item() should be
       freed with ea_free_item() specifying a flag value of EUP_ALLOC when the
       item is no longer needed.


       The  ea_match_object_catalog()  function returns TRUE if the exacct ob‐
       ject specified by obj has a catalog tag that matches the mask specified
       by catmask.


       The ea_attach_to_object() function attaches an object to the given  ob‐
       ject.  The ea_attach_to_group() function attaches a chain of objects as
       member items of the given group. Objects are inserted at the end of the
       list of any previously attached objects.


       The ea_free() function frees a block of memory previously allocated  by
       ea_alloc().


       The   ea_strfree()   function  frees  a  string  previously  copied  by
       ea_strdup().


       The ea_free_item() function frees the value fields in  the  ea_object_t
       indicated  by  obj, if EUP_ALLOC is specified. The object itself is not
       freed. The ea_free_object() function frees the specified object and any
       attached hierarchy of objects. If the flag argument is set  to  EUP_AL‐
       LOC,  ea_free_object()  will  also free any variable-length data in the
       object hierarchy; if set to EUP_NOALLOC, ea_free_object() will not free
       variable-length data. In particular, these flags should  correspond  to
       those specified in calls to ea_unpack_object(3EXACCT).

RETURN VALUES
       The  ea_match_object_catalog() function returns 0 if the object's cata‐
       log tag does not match the given mask, and 1 if there is a match.


       Other integer-valued functions return 0 if successful. Otherwise  these
       functions  return  -1 and set the extended accounting error code appro‐
       priately. Pointer-valued functions return a valid pointer if successful
       and NULL otherwise, setting the extended accounting error  code  appro‐
       priately.  The  extended  accounting  error  code  can be examined with
       ea_error(3EXACCT).

ERRORS
       The ea_set_item(), ea_set_group(), and ea_match_object_catalog()  func‐
       tions may fail if:

       EXR_SYSCALL_FAIL    A  system  call invoked by the function failed. The
                           errno variable contains the error value set by  the
                           underlying call.


       EXR_INVALID_OBJ     The  passed object is of an incorrect type, for ex‐
                           ample passing a group object to ea_set_item().


USAGE
       The exacct file format can be used to represent data other than that in
       the extended accounting format. By using a unique creator type  in  the
       file header, application writers can develop their own format suited to
       the needs of their application.

EXAMPLES
       Example 1 Open and close exacct file.



       Construct  an  exacct file consisting of a single object containing the
       current process ID.


         #include <sys/types.h>
         #include <unistd.h>
         #include <exacct.h>

         ...

         ea_file_t ef;
         ea_object_t obj;
         pid_t my_pid;

         my_pid = getpid();
         ea_set_item(&obj, EXT_UINT32 | EXC_DEFAULT | EXT_PROC_PID,
                &my_pid, sizeof(my_pid));

         ...


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; lw(2.75i) |lw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe


SEE ALSO
       read(2),  ea_error(3EXACCT), ea_open(3EXACCT), ea_pack_object(3EXACCT),
       libexacct(3LIB), attributes(7)

Oracle Solaris 11.4               23 Jan 2023                  ea...m(3EXACCT)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3