검색 여닫기
검색
메뉴 여닫기
543
253
4
2.1천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Exit 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Exit
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: POSIX 시스템 콜]] == 개요 == 프로세스는 exit시스템 콜을 통해서 종료된다. exit시스템 콜이 호출되면 운영체제는 메모리나 파일과 같은 리소스들을 정리하고 프로세스를 종료시킨다. Exit 시스템 콜을 호출하면, # 우선 프로세스를 zombie status로 변경하고 # 자원을 회수한뒤 # disk에 buffered 된 아웃풋을 작성하고 # 프로세스의 contex를 제거한다. == exit 알고리즘 == # 시그널을 모두 무시하고 # hangup시그널을 모든 멤버에게 전송한다 # 모든 멤버에 대한 프로세스 그룹을 0으로 설정한다. # 열린파일을 모드 닫는다 # 현재 directory를 release한다 # root권한을 제출한다 # region을 free한다 # write해야할 것들을 작성한다 # process state를 좀비로 설정한다 # 자식프로세스의 모든 process ID를 1 (init)으로 설정한다 => 만약 자식중 한명이 zombie이면 death시그널을 init에게 보내 init이 자식을 죽이도록 한다. # 혹은 자신의 부모에게 위와 같은 일을 하도록 위임한다. == exit handler == : <code>#include stdlib.h</code> : <code>void atexit(void (*func)(void);</code> exit handler는 최대 32개까지 등록될수 있으며 시스템이 exit됨과 동시에 자동으로 호출된다. 등록한 함수가 여러 개일 때 등록한 역순으로 수행한다. == 예시 == <syntaxhighlight lang=c> #include <stdlib.h> int main(void) { exit(EXIT_SUCCESS); /* or return EXIT_SUCCESS */ } </syntaxhighlight>
Exit
문서로 돌아갑니다.