EN JA
ACCT(5)
ACCT(5) FreeBSD File Formats Manual ACCT(5)

名称

acct実行アカウンティングファイル

書式

#include < sys/types.h>
#include < sys/acct.h>

解説

カーネルは、すべてのプロセスのために次の 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, ACOREASIGASU は、もはやサポートされていません。 ANVER は、上記の構造体で常に設定されます。

歴史

acct ファイル形式は、 Version 7 AT&T UNIX で登場しました。現在のレコード形式は、2007 年 5 月に導入されました。それは、 < sys/acct.h> にまだ文書化されている以前の形式と後方互換性があり、 lastcomm(1)sa(8) によってサポートされています。
May 15, 2007 FreeBSD