# acct

## 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)):
    
           **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)), 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.
    


## 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).
    


* * *