说明

acct()系统调用启用或禁用进程记帐。如果使用现有文件名作为参数进行调用,则会启用记帐功能,并且每个终止过程的记录将在终止时附加到filename中。参数NULL导致记帐被关闭。

遵循规范

SVr4、4.3BSD(但不是POSIX)。

返回值

成功时,返回零。如果出错,则返回-1,并正确设置errno。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

名称

acct-打开或关闭过程记帐

语法

#include <unistd.h>

int acct(const char *filename);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

acct():

Since glibc 2.21:
        _DEFAULT_SOURCE
    In glibc 2.19 and 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Up to and including glibc 2.19:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

错误说明

EACCES
指定文件的写许可被拒绝,或者filename路径前缀中的目录之一被拒绝搜索许可(另请参阅path_resolution(7)),或者filename不是常规文件。
EFAULT
文件名指向您可访问的地址空间之外。
EIO
写入文件文件名时出错。
EISDIR
filename是一个目录。
ELOOP
解决文件名时遇到太多符号链接。
ENAMETOOLONG
文件名太长。
ENFILE
已达到系统范围内打开文件总数的限制。
ENOENT
指定的文件不存在。
ENOMEM
内存不足。
ENOSYS
编译操作系统内核时,尚未启用BSD进程记帐。控制此功能的内核配置参数为CONFIG_BSD_PROCESS_ACCT。
ENOTDIR
实际上,在文件名中用作目录的组件不是目录。
EPERM
调用进程的特权不足,无法启用进程记帐。在Linux上,需要CAP_SYS_PACCT功能。
EROFS
filename是指只读文件系统上的文件。
EUSERS
没有其他可用的文件结构,否则我们的内存不足。

备注

发生系统崩溃时,不会为正在运行的程序产生费用。特别是,永远不会考虑非终止过程。

acct(5)中描述了写入会计文件的记录的结构。

ACCT - Linux手册页

Linux程序员手册 第2部分
更新日期: 2016-03-15

另外参见

acct(5)

日期:2019-08-20 17:58:34 来源:oir作者:oir