NAME
on_exit - 프로세스 정상 종료 때 호출되는 함수 등록하기
SYNOPSIS
#include <stdlib.h>
int on_exit(void (*function)(int, void *), void *arg);
glibc 기능 확인 매크로 요건 (feature_test_macros(7) 참고):
on_exit()
:-
- glibc 2.19부터:
_DEFAULT_SOURCE
- glibc 2.19 및 이전:
_BSD_SOURCE || _SVID_SOURCE
DESCRIPTION
on_exit()
함수는 exit(3)나 프로그램 main()
반환을 통한 프로세스 정상 종료 때 호출하도록 주어진 함수 function
을 등록해 둔다. 마지막 exit(3) 호출이 받은 status
인자와 on_exit()
의 arg
인자가 function
으로 전달된다.
같은 함수를 여러 번 등록할 수도 있다. 각 등록마다 한 번씩 호출된다.
fork(2)를 통해 자식 프로세스가 생성되면 부모의 등록 내용 사본을 물려받는다. exec(3) 함수들 중 하나를 성공적으로 호출하면 모든 등록 내용이 없어진다.
RETURN VALUE
on_exit()
함수는 성공 시 0 값을 반환한다. 그 외의 경우 0 아닌 값을 반환한다.
ATTRIBUTES
이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.
인터페이스 | 속성 | 값 |
---|---|---|
on_exit() |
스레드 안전성 | MT-Safe |
CONFORMING TO
이 함수는 SunOS 4에서 생긴 것이지만 glibc에도 있다. 솔라리스(SunOS 5)에는 더이상 존재하지 않는다. 이식 가능한 응용에서는 이 함수를 피하고 대신 표준인 atexit(3)를 사용해야 한다.
NOTES
function
이 실행될 때 스택(자동) 변수들이 이미 스코프를 벗어났을 수 있다. 따라서 arg
가 스택 변수에 대한 포인터여선 안 된다. 힙 변수나 전역 변수에 대한 포인터는 괜찮다.
SEE ALSO
2021-03-22