---
name: "acct"
section: "2"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/acct"
---

# acct(2)

switch process accounting on or off

## NAME

acct - switch process accounting on or off

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <unistd.h>
```

**int acct(const char \*\_Nullable** *path***);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**acct**():

```
    Since glibc 2.21:
        _DEFAULT_SOURCE
    In glibc 2.19 and 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Up to and including glibc 2.19:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
```

## DESCRIPTION

The **acct**() system call enables or disables process accounting. If called with the pathname of an existing file as its argument, accounting is turned on, and records for each terminating process are appended to the file as it terminates. An argument of NULL causes accounting to be turned off.

## RETURN VALUE

On success, zero is returned. On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

- **EACCES**

  Write permission is denied for the specified file, or search permission is denied for one of the directories in the path prefix of *path* (see also [**path\_resolution**(7)](/path_resolution/7.md)), or *path* is not a regular file.

- **EFAULT**

  *path* points outside your accessible address space.

- **EIO**

  Error writing to the file *path*.

- **EISDIR**

  *path* is a directory.

- **ELOOP**

  Too many symbolic links were encountered in resolving *path*.

- **ENAMETOOLONG**

  *path* was too long.

- **ENFILE**

  The system-wide limit on the total number of open files has been reached.

- **ENOENT**

  The specified *path* 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 *path* is not in fact a directory.

- **EPERM**

  The calling process has insufficient privilege to enable process accounting. On Linux, the **CAP\_SYS\_PACCT** capability is required.

- **EROFS**

  *path* refers to a file on a read-only filesystem.

- **EUSERS**

  There are no more free file structures or we ran out of memory.

## STANDARDS

None.

## HISTORY

SVr4, 4.3BSD.

## NOTES

No accounting is produced for programs running when a system crash occurs. In particular, nonterminating processes are never accounted for.

The structure of the records written to the accounting file is described in [**acct**(5)](/acct/5.md).

## SEE ALSO

[**acct**(5)](/acct/5.md)
