June 4, 1993 ACCT 2

### NAME

acct - enable or disable process accounting

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```int` acct(```const char *file`)

### DESCRIPTION

The acct(``) call enables or disables the collection of system accounting records. If the argument ```file` is a nil pointer, accounting is disabled. If ```file` is an existing pathname (null-terminated), record collection is enabled and for every process initiated which terminates under normal conditions an accounting record is appended to ```file`. Abnormal conditions of termination are reboots or other fatal system problems. Records for processes which never terminate can not be produced by acct(``).

For more information on the record structure used by acct(``), see ```/usr/include/sys/acct.h` and acct(5).

This call is permitted only to the super-user.

### NOTES

Accounting is automatically disabled when the file system the accounting file resides on runs out of space; it is enabled when space once again becomes available. For this purpose, acct(``) creates a kernel thread called ``acctwatch''.

### RETURN VALUES

On error -1 is returned. The file must exist and the call may be exercised only by the super-user.

### ERRORS

acct(``) will fail if one of the following is true:

[```EPERM`]
  The caller is not the super-user.

[```ENOTDIR`]
  A component of the path prefix is not a directory.

[```ENAMETOOLONG`]
  A component of a pathname exceeded ```{NAME_MAX}` characters, or an entire path name exceeded ```{PATH_MAX}` characters.

[```ENOENT`]
  The named file does not exist.

[```EACCES`]
  Search permission is denied for a component of the path prefix, or the path name is not a regular file.

[```ELOOP`]
  Too many symbolic links were encountered in translating the pathname.

[```EROFS`]
  The named file resides on a read-only file system.

[```EFAULT`]
  ```file` points outside the process's allocated address space.

[```EIO`]
  An I/O error occurred while reading from or writing to the file system.

Also, acct(``) fails if failed to create kernel thread described above. See fork(2) for errno value.

### SEE ALSO

fork(2), acct(5), sa(8)

### HISTORY

An acct(``) function call appeared in Version 7 `AT&T UNIX`.