ACCT(2) | System Calls Manual | ACCT(2)

# NAME

`acct` —
enable or disable process accounting

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <unistd.h>`

int
`acct`(const char *file);

# DESCRIPTION

The `acct`() call enables or disables the collection of system accounting records. If file is `NULL`, accounting is disabled. If file is an existing, NUL-terminated, pathname, 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 success, zero is returned. Otherwise, -1 is returned and errno is set to indicate the error.

# ERRORS

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

[`EACCES`]
  Search permission is denied for a component of the path prefix, or the path name is not a regular file.
[`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.
[`ELOOP`]
  Too many symbolic links were encountered in translating the pathname.
[`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.
[`ENOTDIR`]
  A component of the path prefix is not a directory.
[`EPERM`]
  The caller is not the super-user.
[`EROFS`]
  The named file resides on a read-only 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.

June 4, 1993 | NetBSD 9.2