.\" Copyright (c) 1993 Michael Haardt
.\" (michael@moria.de),
.\" Fri Apr 2 11:32:09 MET DST 1993
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\" Modified 1993-07-22 by Rik Faith
.\" Modified 1993-08-10 by Alan Cox
.\" Modified 1998-11-04 by Tigran Aivazian
.\" Modified 2004-05-27, 2004-06-17, 2004-06-23 by Michael Kerrisk
.\"
.TH ACCT 2 2016-03-15 "Linux" "Linux Programmer's Manual"
.SH NAME
acct \- switch process accounting on or off
.SH SYNOPSIS
.ad l
.nf
.B #include
.PP
.BI "int acct(const char *" filename );
.fi
.ad b
.PP
.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.RE
.PP
.BR acct ():
.nf
Since glibc 2.21:
.\" commit 266865c0e7b79d4196e2cc393693463f03c90bd8
_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)
.fi
.SH DESCRIPTION
The
.BR acct ()
system call enables or disables process accounting.
If called with the name of an existing file as its argument,
accounting is turned on,
and records for each terminating process are appended to
.I filename
as it terminates.
An argument of NULL causes accounting to be turned off.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
.I errno
is set appropriately.
.SH ERRORS
.TP
.B EACCES
Write permission is denied for the specified file,
or search permission is denied for one of the directories
in the path prefix of
.I filename
(see also
.BR path_resolution (7)),
or
.I filename
is not a regular file.
.TP
.B EFAULT
.I filename
points outside your accessible address space.
.TP
.B EIO
Error writing to the file
.IR filename .
.TP
.B EISDIR
.I filename
is a directory.
.TP
.B ELOOP
Too many symbolic links were encountered in resolving
.IR filename .
.TP
.B ENAMETOOLONG
.I filename
was too long.
.TP
.B ENFILE
The system-wide limit on the total number of open files has been reached.
.TP
.B ENOENT
The specified file does not exist.
.TP
.B ENOMEM
Out of memory.
.TP
.B ENOSYS
BSD process accounting has not been enabled when the operating system
kernel was compiled.
The kernel configuration parameter controlling this feature is
.BR CONFIG_BSD_PROCESS_ACCT .
.TP
.B ENOTDIR
A component used as a directory in
.I filename
is not in fact a directory.
.TP
.B EPERM
The calling process has insufficient privilege to enable process accounting.
On Linux, the
.B CAP_SYS_PACCT
capability is required.
.TP
.B EROFS
.I filename
refers to a file on a read-only filesystem.
.TP
.B EUSERS
There are no more free file structures or we ran out of memory.
.SH CONFORMING TO
SVr4, 4.3BSD (but not POSIX).
.\" SVr4 documents an EBUSY error condition, but no EISDIR or ENOSYS.
.\" Also AIX and HP-UX document EBUSY (attempt is made
.\" to enable accounting when it is already enabled), as does Solaris
.\" (attempt is made to enable accounting using the same file that is
.\" currently being used).
.SH NOTES
No accounting is produced for programs running when a system crash occurs.
In particular, nonterminating processes are never accounted for.
.PP
The structure of the records written to the accounting file is described in
.BR acct (5).
.SH SEE ALSO
.BR acct (5)
.SH COLOPHON
This page is part of release 5.10 of the Linux
.I man-pages
project.
A description of the project,
information about reporting bugs,
and the latest version of this page,
can be found at
\%https://www.kernel.org/doc/man\-pages/.