/* * アカウンティング構造体; これらは、基底値 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 はもはやサポートされていません。