acct(2) включает или выключает учёт процессов

ОБЗОР

#include <unistd.h>


int acct(const char *filename);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

acct(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

ОПИСАНИЕ

Системный вызов acct() включает или выключает учёт процессов. Если при вызове, в качестве аргумента, указывается имя существующего файла, происходит включение учёта, и при завершении процесса, в файл filename добавляются записи для каждого завершившегося процесса. Если в качестве аргумента указан NULL, то учёт выключается.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.

ОШИБКИ

EACCES
Нет прав на запись в указанный файл, или в одном из каталогов в pathname не разрешён поиск (см. также path_resolution(7)), или filename не является обычным файлом.
EFAULT
Аргумент filename указывает за пределы доступного адресного пространства.
EIO
Ошибка записи в файл filename.
EISDIR
filename является каталогом.
ELOOP
Во время определения pathname встретилось слишком много символьных ссылок.
ENAMETOOLONG
Слишком длинное значение аргумента pathname.
ENFILE
Достигнуто максимальное количество открытых файлов в системе.
ENOENT
Указанный файл не существует.
ENOMEM
Не хватает памяти.
ENOSYS
BSD учёт процессов не может быть разрешён, если эта возможность не была включена при компиляции ядра операционной системы. Этой возможностью управляет параметр настройки ядра CONFIG_BSD_PROCESS_ACCT.
ENOTDIR
Компонент пути в pathname в действительности не является каталогом.
EPERM
Вызвавшему процессу не хватает прав включить учёт процессов. В Linux для этого требуется мандат CAP_SYS_PACCT.
EROFS
filename указывает на файл в файловой системе, доступной только для чтения.
EUSERS
Закончились свободные файловые структуры или память.

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, 4.3BSD (но не POSIX).

ЗАМЕЧАНИЯ

Учёт не производится для программ, которые заканчиваются аварийно. В частности, незавершаемые процессы никогда не учитываются.

Структура записей, записываемых в файл учёта, описана в acct(5).