---
name: "acct"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/acct"
---

# acct(2)

enable or disable process accounting

## NAME

**acct** – enable or disable process accounting

## SYNOPSIS

**#include \<unistd.h\>**

*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)](/acct/5.md).

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.

## RETURN VALUES

The **acct()** function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error. 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.

## SEE ALSO

[acct(5)](/acct/5.md), [sa(8)](/sa/8.md)

## HISTORY

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