ACCT(2)

ИМЯ
acct - включает или выключает учёт процессов

ОБЗОР
#include <unistd.h>

int acct(const char *filename);

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

acct():
    начиная с glibc 2.21:
        _DEFAULT_SOURCE
    в glibc 2.19 и 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    до glibc 2.19, включительно:
        _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).

СМОТРИТЕ ТАКЖЕ
acct(5)