| ACCT(5) | FreeBSD File Formats Manual | ACCT(5) |
名称
acct — 実行アカウンティングファイル解説
カーネルは、すべてのプロセスのために次の acct 情報構造体を維持しています。プロセスが終了し、アカウンティングが有効であるなら、カーネルは、準備して、アカウンティングファイルにレコードを追加するために、 acct(2) 関数を呼び出します。
#define AC_COMM_LEN 16
/*
* アカウンティング構造体バージョン 2 (current).
* 最初のバイトは, 常に 0 です.
* 時間の単位は, マイクロ秒です.
*/
struct acctv2 {
uint8_t ac_zero; /* 0 は, 新しいバージョンを識別
する */
uint8_t ac_version; /* レコードバージョン番号 */
uint16_t ac_len; /* レコード長 */
char ac_comm[AC_COMM_LEN]; /* コマンド名 */
float ac_utime; /* ユーザ時間 */
float ac_stime; /* システム時間 */
float ac_etime; /* 経過時間 */
time_t ac_btime; /* 開始時刻 */
uid_t ac_uid; /* ユーザ ID */
gid_t ac_gid; /* グループ ID */
float ac_mem; /* 平均メモリ使用量 */
float ac_io; /* IO ブロックの数 */
__dev_t ac_tty; /* 制御 tty */
uint16_t ac_len2; /* レコード長 */
union {
__dev_t ac_align; /* 強制 v1 互換整列 */
#define AFORK 0x01 /* fork したが, exec していない */
/* ASU は, もはやサポートされません */
#define ASU 0x02 /* 使用されたスーパユーザの
パーミッション */
#define ACOMPAT 0x04 /* 使用された互換モード */
#define ACORE 0x08 /* ダンプされたコア */
#define AXSIG 0x10 /* シグナルによって kill された */
#define ANVER 0x20 /* 新しいレコードバージョン */
uint8_t ac_flag; /* アカウンティングフラグ */
} ac_trailer;
#define ac_flagx ac_trailer.ac_flag
};
終了したプロセスが execve(2) によって作成されていたなら、実行されたファイルのファイルの名前 (その最大 10 文字) は、フィールド ac_comm に保存され、その状態は、 ac_flag に次のフラグの 1 つ以上を設定することによって保存されます: AFORK, ACOMPAT, ACORE と ASIG。 ASU は、もはやサポートされていません。 ANVER は、上記の構造体で常に設定されます。
歴史
acct ファイル形式は、 Version 7 AT&T UNIX で登場しました。現在のレコード形式は、2007 年 5 月に導入されました。それは、 < sys/acct.h> にまだ文書化されている以前の形式と後方互換性があり、 lastcomm(1) と sa(8) によってサポートされています。| May 15, 2007 | FreeBSD |