acct

명칭
     acct — 실행 어카운트 파일

서식
     <sys/types.h> <sys/acct.h>

해설
     커널은, 아래와 같은 acct 정보 구조를, 전프로세스에 대해서 관리합니다.  프로세스가 종료하면(자), 어카운팅이 유효하게 되어 있는
     경우에는, 커널은 acct(2) 함수 호출을 실시해, 어카운팅 파일에 기록을 추가합니다.

     /*
      * 어카운팅 구조체; 이것들은, 기저치 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 필드에 encode 됩니다.
      * 반드시 주파수로 동일이 된다고는 할 수 없습니다.
      */
     #define AHZ     64

     종료한 프로세스가 execve(2) 에 의해 생성된 것이었던 경우, 실행된 파일의 파일명 (최대 10 캐릭터까지)이 ac_comm
     필드에 보존되어 그 상태는 ac_flag 의 다음의 플래그의 1 개 이상을 설정하는 것으로써 보존됩니다: AFORK, ASU,
     ACOMPAT, ACORE, ASIG

관련 항목
     acct(2), execve(2), sa(8)

역사
     acct 파일 포맷은 Version 7 AT&T UNIX (으)로부터 등장했습니다.