Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
getacct(2)			 System	Calls			    getacct(2)

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

       #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

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

       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_un-
       pack_object()  (see  ea_pack_object(3EXACCT))  and subsequently manipu-
       lated using the functions of the	extended  accounting  library,	libex-

       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 re-
       turned by ea_pack_object(3EXACCT). The use of an	inappropriate flag  or
       the  inclusion of corrupt exacct	data will likely corrupt the enclosing
       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 re-
       porting relevant	to system tasks	and processes other than the  invoking
       process.	 The putacct() and wracct() functions also cause the kernel to
       write records to	the system's extended accounting files.

       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.

       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 re-
		       maining on the file system.

       ENOTACTIVE      The extended accounting facility	for the	requested  id-
		       type_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

       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-

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

       |MT-Level		     |Async-Signal-Safe		   |

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

SunOS 5.10			  20 Jan 2003			    getacct(2)


Want to link to this manual page? Use this URL:

home | help