unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

getacct(2)                       System Calls                       getacct(2)



NAME
       getacct, putacct, wracct - get, put, or write extended accounting data

SYNOPSIS
       #include <sys/exacct.h>

       size_t getacct(idtype_t idtype, id_t id, void *buf, size_t bufsize);

       int  putacct(idtype_t  idtype,  id_t id, void *buf, size_t bufsize, int
       flags);

       int wracct(idtype_t idtype, id_t id, int flags);

DESCRIPTION
       These functions provide access to the extended accounting facility.

       The getacct() function returns extended  accounting  buffers  from  the
       kernel  for currently executing tasks and processes. The resulting data
       buffer  is  a  packed  exacct  object  that  can  be   unpacked   using
       ea_unpack_object()   (see   ea_pack_object(3EXACCT))  and  subsequently
       manipulated using the functions of  the  extended  accounting  library,
       libexacct(3LIB).

       The putacct() function provides privileged processes the ability to tag
       accounting records with additional data specific to that process.   For
       instance,  a  queueing  facility  might want to record to which queue a
       given task or process was submitted prior to running. The  flags  argu-
       ment  determines  whether  the contents of buf should be treated as raw
       data (EP_RAW) or as an embedded exacct structure (EP_EXACCT_OBJECT). In
       the  case  of  EP_EXACCT_OBJECT,  buf must be a packed exacct object as
       returned by ea_pack_object(3EXACCT). The use of an  inappropriate  flag
       or the inclusion of corrupt exacct data will likely corrupt the enclos-
       ing exacct file.

       The wracct() function requests the kernel to write, given its  internal
       state of resource usage, the appropriate data for the specified task or
       process. The flags field determines whether a partial  (EW_PARTIAL)  or
       interval record (EW_INTERVAL) is written.

       These  functions  require  root  privilege,  as  they  allow inquiry or
       reporting relevant to system tasks and processes other than the  invok-
       ing process. The putacct() and wracct() functions also cause the kernel
       to write records to the system's extended accounting files.

RETURN VALUES
       The getacct() function returns the number of bytes required  to  repre-
       sent  the  extended  accounting record for the requested system task or
       process.  If bufsize exceeds the returned  size,  buf  will  contain  a
       valid  accounting  record  buffer.   If bufsize is less than the return
       value, buf will contain the first bufsize bytes of the record. If  buf-
       size is 0, getacct() returns only the number of  bytes required to rep-
       resent the extended accounting record. In the event of failure,  -1  is
       returned and errno is set to indicate the error.

       The  putacct()  and  wracct() functions return 0 if the record was suc-
       cessfully written. Otherwise, -1 is returned and errno is set to  indi-
       cate the error.

ERRORS
       The getacct(), putacct(), and wracct() functions will fail if:

       EINVAL          The idtype argument was not P_TASKID or P_PID.



       ENOSPC          The file system containing the extended accounting file
                       is full.  The wracct() or putacct() function will  fail
                       if  the  record  size  would exceed the amount of space
                       remaining on the file system.



       ENOTACTIVE      The extended  accounting  facility  for  the  requested
                       idtype_t  is not active.  Either putacct() attempted to
                       write a task record when the task accounting  file  was
                       unset,  or  getacct()  attempted to retrieve accounting
                       data for a process when extended process accounting was
                       inactive.



       EPERM           The  {PRIV_SYS_ACCT}  privilege  is not asserted in the
                       effective set of the calling process.



       ERSCH           The id argument does not refer to  a  presently  active
                       system task ID or process ID.



       The putacct() and wracct() functions will fail if:

       EINVAL          The  flags argument is neither EW_PARTIAL nor EW_INTER-
                       VAL.



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


       tab()  allbox;  lw(2.750000i)|   lw(2.750000i).    ATTRIBUTE    TYPEAT-
       TRIBUTE VALUE MT-LevelAsync-Signal-Safe


SEE ALSO
       ea_pack_object(3EXACCT), libexacct(3LIB), attributes(5)




SunOS 5.10                        20 Jan 2003                       getacct(2)