ACCT(2)

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

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

int acct(const char *filename);

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

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха, возвращается ноль. В случае ошибки возвращается -1 и errno устанавливается в соответствующее значение.

ОШИБКИ

EACCES
    Для указанного файла отсутствуют права на запись.

EACCES
    Аргумент filename не является обычным файлом.

EFAULT
    filename указывает за пределы доступного вам адресного пространства.

EIO Ошибка записи в файл filename.

EISDIR
    filename является каталогом.

ELOOP
    Во время определения filename встретилось слишком много символьных ссылок (зацикливание по символьным сслыкам -- прим. пер.).

ENAMETOOLONG
    filename слишком длинно.

ENOENT
    Файл с указанным именем не существует.

ENOMEM
    Не хаватает памяти.

ENOSYS
    BSD учёт процессов не может быть разрешён, если эта возможность не была включена при компиляции ядра операционной системы. Этой возможностью управляет конфигурационный параметр ядра CONFIG_BSD_PROCESS_ACCT.

ENOTDIR
    Один из компонентов в пути filename который указан как каталог, на самом деле не является каталогом.

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

EROFS
    filename указывает на файл в файловой системе, доступной только для чтения.

EUSERS
    Больше нет свободных файловых структур или произошло переполнение памяти.

СОВМЕСТИМОСТЬ СО СТАНДАРТАМИ
SVr4 (но не POSIX). SVr4 документирует условия ошибки EBUSY, но не ошибок EISDIR или ENOSYS. Также AIX и HPUX документируют ошибку EBUSY (попытку разрешить учёт, когда он уже разрешён), как в Solaris (попытка разрешить учёт, используя такое же имя файла, которое уже было использовано).

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

ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003