ИМЯ
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).