table of contents
ACCT(2) | Руководство программиста Linux | ACCT(2) |
ИМЯ¶
acct - включает или выключает учёт процессов
ОБЗОР¶
#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).
СМОТРИТЕ ТАКЖЕ¶
2008-06-16 | Linux |