GNU/Linux |
RedHat 9.0(Shrike) |
|
![]() |
acct(2) |
![]() |
acct − switch process accounting on or off
#include <unistd.h>
int acct(const char *filename);
When called with the name of an existing file as argument, accounting is turned on, records for each terminating process are appended to filename as it terminates. An argument of NULL causes accounting to be turned off.
On success, zero is returned. On error, −1 is returned, and errno is set appropriately.
EACCES |
Write permission is denied for the specified file. | ||
EACCES |
The argument filename is not a regular file. | ||
EFAULT |
filename points outside your accessible address space. | ||
EIO |
Error writing to the file filename. | ||
EISDIR |
filename is a directory. | ||
ELOOP |
Too many symbolic links were encountered in resolving filename. |
ENAMETOOLONG
filename was too long.
ENOENT |
The specified filename does not exist. | ||
ENOMEM |
Out of memory. | ||
ENOSYS |
BSD process accounting has not been enabled when the operating system kernel was compiled. The kernel configuration parameter controlling this feature is CONFIG_BSD_PROCESS_ACCT. |
ENOTDIR
A component used as a directory in filename is not in fact a directory.
EPERM |
The calling process has no permission to enable process accounting. | ||
EROFS |
filename refers to a file on a read-only file system. | ||
EUSERS |
There are no more free file structures or we ran out of memory. |
SVr4 (but not POSIX). SVr4 documents an EBUSY error condition, but no EISDIR or ENOSYS. Also AIX and HPUX document EBUSY (attempt is made to enable accounting when it is already enabled), as does Solaris (attempt is made to enable accounting using the same file that is currently being used).
No accounting is produced for programs running when a crash occurs. In particular, nonterminating processes are never accounted for.
![]() |
acct(2) | ![]() |