acct() - enable or disable process accounting
int acct(const char *path);
The acct() system call enables or disables the system's process
accounting routine. If the routine is enabled, an accounting record
is written on an accounting file for each process that terminates.
Termination can be caused by one of two things: an exit() call or a
signal (see exit(2) and signal(5)). The effective user ID of the
calling process must be superuser to use this call.
path points to a path name naming the accounting file. The accounting
file format is described in acct(4).
The accounting routine is enabled if path is nonzero and no errors
occur during the system call. It is disabled if path is zero and no
errors occur during the system call.
When the amount of free space on the file system containing the
accounting file falls below a configurable threshold, the system
prints a message on the console and disables process accounting.
Another message is printed and the process accounting is reenabled
when the space reaches a second configurable threshold.
If the size of the process accounting file reaches 5000 blocks,
records for processes terminating after that point will be silently
lost. However, in that case the turnacct command would still sense
that process accounting is still enabled. This loss of records can be
prevented with the ckpacct command. ckpacct and turnacct are
described in acctsh(1M)).
acct() returns the following values:
0 Successful completion.
-1 Failure. errno is set to indicate the error.
If acct() fails, errno is set to one of the following values.
[EACCES] The file named by path is not an ordinary file.
[EBUSY] An attempt is being made to enable accounting when
it is already enabled.
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
[EFAULT] path points to an illegal address. The reliable
detection of this error is implementation
[ELOOP] Too many symbolic links were encountered in
translating the path name.
[ENAMETOOLONG] The accounting file path name exceeds PATH_MAX
bytes, or the length of a component of the path
name exceeds NAME_MAX bytes while _POSIX_NO_TRUNC
is in effect.
[ENOENT] One or more components of the accounting file path
name do not exist.
[ENOTDIR] A component of the path prefix is not a directory.
[EPERM] The effective user ID of the calling process is
[EROFS] The named file resides on a read-only file system.
[ETXTBSY] path points to a text file which is currently
acct(1M), acctsh(1M), exit(2), acct(4), signal(5).
acct(): SVID2, SVID3, XPG2
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000