ACCT(2)

이름
acct - 프로세스 계정 작업을 활성화시키거나 비활성화시킨다.

사용법
#include <unistd.h>

int acct(const char *filename);

설명
어떤 파일 이름을 인자로 주어 호출할 경우, 계정 작업이 활성화되고 각 프로세스가 종료될 때마다 filename 파일에 기록이 추가된다. 인자를 NULL로 주면 계정 작업이 비활성화된다.

반환값
성공시 0을 반환하고, 실패시 -1을 반환하고 errno 값이 그에 상응하여 설정된다.

에러

EACCES
    지정된 파일에 쓰기 권한이 없다.

EACCES
    인자 filename 파일은 잘못된 파일이다.

EFAULT
    filename 파일은 접근 가능한 주소 범위를 벗어난다.

EIO filename 파일에 쓰기 오류.

EISDIR
    filename 파일은 디렉토리이다.

ELOOP
    너무 많은 심볼링 링크로 인한 filename 파일 찾기 오류

ENAMETOOLONG
    filename의 문자열 길이가 너무 길다.

ENOENT
    지정된 파일이 존재하지 않는다.

ENOMEM
    메모리가 부족하다.

ENOSYS
    BSD 프로세스 어카운팅 커널 옵션이 활성화되지 않았다. 이 기능을 제어하는 커널 옵션은 CONFIG_BSD_PROCESS_ACCT 이다.

ENOTDIR
    filename의 일부분이 디렉토리 이름으로 쓰였으나 실제로는 디렉토리가 아니다.

EPERM
    호출된 프로세스의 실행 권한이 없다.

EROFS
    filename은 읽기만 가능한 파일 시스템의 파일이다.

EUSERS
    여분의 공간이나 메모리가 부족하다.

호환
SVr4 호환(POSIX 제외) SVr4는 EBUSY 오류가 지원되나, EISDIR 혹은 ENOSYS는 제외되어 있다. AIX와 HPUX 역시 EBUSY를 지원하며 (이것이 활성화되었을 경우라도 어카운팅이 지원된다), Solaris도 지원한다. (동일한 파일을 사용 중일 경우에도 어카운팅이 지원된다).

주의
프로그램이 정상 종료되지 않았을 때 어떠한 어카운팅도 없으며, 보통 비정상 종료 프로세스는 어카운팅되지 않는다.

번역
ASPLINUX <man@asp-linux.co.kr> 2000년 7월 29일
한글 Manpage 프로젝트 (http://man.kldp.org) 2004년 3월 10일