/*
* アカウンティング構造体; これらは、基底値 8 の 3 ビット指数部および
* 13 ビット小数部の ``浮動小数点数'' である comp_t 型を使用します。
* 単位は 1/AHZ 秒です。
*/
typedef u_short comp_t;
#define AC_COMM_LEN 16
struct acct {
char ac_comm[AC_COMM_LEN]; /* コマンド名 */
comp_t ac_utime; /* ユーザ時間 */
comp_t ac_stime; /* システム時間 */
comp_t ac_etime; /* 経過時間 */
time_t ac_btime; /* 開始時刻 */
uid_t ac_uid; /* ユーザ ID */
gid_t ac_gid; /* グループ ID */
short ac_mem; /* 平均メモリ使用量 */
comp_t ac_io; /* 入出力ブロック数 */
dev_t ac_tty; /* 制御 tty */
#define AFORK 0x01 /* fork したが exec されていない */
#define ASU 0x02 /* スーパユーザ権限を使用した */
#define ACOMPAT 0x04 /* 互換モードを使用した */
#define ACORE 0x08 /* コアダンプした */
#define AXSIG 0x10 /* シグナルにより kill された */
char ac_flag; /* アカウンティングフラグ */
};
/*
* 1/AHZ の粒度で、データは comp_t フィールドにエンコードされます。
* 必ずしも周波数と同一となるとは限りません。
*/
#define AHZ 64
終了したプロセスが execve(2) により生成されたものだった場合、 実行されたファイルのファイル名 (最大 10 文字まで) が Fa ac_comm フィールドに保存され、その状態は Fa ac_flag の次のフラグの 1 つ以上を設定することにより保存されます: AFORK ACOMPAT ACORE ASIG 。 ASU はもはやサポートされていません。