词条 | acct |
释义 | linux 原文件acct.h/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #ifndef _SYS_ACCT_H #define _SYS_ACCT_H 1 #include <features.h> #define __need_time_t #include <time.h> #include <sys/types.h> __BEGIN_DECLS #define ACCT_COMM 16 /* comp_t is a 16-bit "floating" point number with a 3-bit base 8 exponent and a 13-bit fraction. See linux/kernel/acct.c for the specific encoding system used. */ typedef u_int16_t comp_t; struct acct { char ac_flag; /* Accounting flags. */ u_int16_t ac_uid; /* Accounting user ID. */ u_int16_t ac_gid; /* Accounting group ID. */ u_int16_t ac_tty; /* Controlling tty. */ u_int32_t ac_btime; /* Beginning time. */ comp_t ac_utime; /* Accounting user time. */ comp_t ac_stime; /* Accounting system time. */ comp_t ac_etime; /* Accounting elapsed time. */ comp_t ac_mem; /* Accounting average memory usage. */ comp_t ac_io; /* Accounting chars transferred. */ comp_t ac_rw; /* Accounting blocks read or written. */ comp_t ac_minflt; /* Accounting minor pagefaults. */ comp_t ac_majflt; /* Accounting major pagefaults. */ comp_t ac_swaps; /* Accounting number of swaps. */ u_int32_t ac_exitcode; /* Accounting process exitcode. */ char ac_comm[ACCT_COMM+1]; /* Accounting command name. */ char ac_pad[10]; /* Accounting padding bytes. */ }; enum { AFORK = 0x01, /* Has executed fork, but no exec. */ ASU = 0x02, /* Used super-user privileges. */ ACORE = 0x08, /* Dumped core. */ AXSIG = 0x10 /* Killed by a signal. */ }; #define AHZ 100 /* Switch process accounting on and off. */ extern int acct (__const char *__filename) __THROW; __END_DECLS #endif /* sys/acct.h */ 名称: acct -- 启用/禁止进程信息记录功能 库: Standard C Library (libc, -lc) 概要: #include <unistd.h> int acct(const char * file, int mode); 详述: acct()系统调用禁止/启用系统记录进程信息。若file为NULL,记录功能将被禁用; 若file指向一个存在的文件(以'\\0'结尾),则记录功能被启用, 正常结束的进程都会在该文件尾添加对应的信息。异常结束是指重启或其它致命的系统问题。 acct()不能生成那些永远不会结束的进程的信息。 关于acct()使用的记录结构及其它相关信息,请参阅<sys/acct.h>及acct(5)。 该系统调用只能由超级用户使用。 笔记: 当记录文件所在的文件系统空间已满时,记录功能将被自动禁用;当空间足够时, 它会被自动启用。自动行为可以通过sysctl(8)修改对应的变量来控制: kern.acct_chkfreq 指定检查剩余空间大小的频率(秒) kern.acct_resume 剩余空间高于该百分比时,将恢复记录功能 kern.acct_suspend 剩余空间低于该百分比时,将暂停记录功能 返回值: 有错误时返回-1。file文件必须存在且只能由超级用户调用。 错误: acct()失败时将设置errno为下列错误常量: [EPERM] 调用者不是超级用户 [ENOTDIR] file中的某目录组分不是目录 [ENAMETOOLONG] file中的某目录组分超过255字节或file超过1023字节 [ENOENT] 文件不存在 [ELOOP] 转换路径时遇到了太多的符号链接 [EACCES] file中某目录组分不允许搜索或file不是一个普通文件 [EROFS] 试图在只读文件系统上请求写操作 [ETXTBSY] 试图对执行中的文件请求写操作 [EFAULT] file参数指向的地址超出了进程的存取空间 [EIO] 读/写文件系统时遇到了I/O错误 历史: acct()系统调用在AT&T UNIX版本7里首次出现。 (2)ACCT :ACCOUNT 帐目,帐户 (在外贸中常用到这个缩写) |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。