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