<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Exit</id>
	<title>Exit - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Exit"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Exit&amp;action=history"/>
	<updated>2026-05-14T21:50:05Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Exit&amp;diff=718&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류: POSIX 시스템 콜  == 개요 == 프로세스는 exit시스템 콜을 통해서 종료된다. exit시스템 콜이 호출되면 운영체제는 메모리나 파일과 같은 리소스들을 정리하고 프로세스를 종료시킨다.   Exit 시스템 콜을 호출하면, # 우선 프로세스를 zombie status로 변경하고 # 자원을 회수한뒤 # disk에 buffered 된 아웃풋을 작성하고 # 프로세스의 contex를 제거한다.   == exit 알고리즘 ==...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Exit&amp;diff=718&amp;oldid=prev"/>
		<updated>2023-02-21T01:34:11Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:POSIX_%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%BD%9C&quot; title=&quot;분류:POSIX 시스템 콜&quot;&gt;분류: POSIX 시스템 콜&lt;/a&gt;  == 개요 == 프로세스는 exit시스템 콜을 통해서 종료된다. exit시스템 콜이 호출되면 운영체제는 메모리나 파일과 같은 리소스들을 정리하고 프로세스를 종료시킨다.   Exit 시스템 콜을 호출하면, # 우선 프로세스를 zombie status로 변경하고 # 자원을 회수한뒤 # disk에 buffered 된 아웃풋을 작성하고 # 프로세스의 contex를 제거한다.   == exit 알고리즘 ==...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류: POSIX 시스템 콜]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
프로세스는 exit시스템 콜을 통해서 종료된다. exit시스템 콜이 호출되면 운영체제는 메모리나 파일과 같은 리소스들을 정리하고 프로세스를 종료시킨다. &lt;br /&gt;
&lt;br /&gt;
Exit 시스템 콜을 호출하면,&lt;br /&gt;
# 우선 프로세스를 zombie status로 변경하고&lt;br /&gt;
# 자원을 회수한뒤&lt;br /&gt;
# disk에 buffered 된 아웃풋을 작성하고&lt;br /&gt;
# 프로세스의 contex를 제거한다. &lt;br /&gt;
&lt;br /&gt;
== exit 알고리즘 ==&lt;br /&gt;
# 시그널을 모두 무시하고&lt;br /&gt;
# hangup시그널을 모든 멤버에게 전송한다&lt;br /&gt;
# 모든 멤버에 대한 프로세스 그룹을 0으로 설정한다.&lt;br /&gt;
# 열린파일을 모드 닫는다&lt;br /&gt;
# 현재 directory를 release한다&lt;br /&gt;
# root권한을 제출한다&lt;br /&gt;
# region을 free한다&lt;br /&gt;
# write해야할 것들을 작성한다&lt;br /&gt;
# process state를 좀비로 설정한다&lt;br /&gt;
# 자식프로세스의 모든 process ID를 1 (init)으로 설정한다 =&amp;gt; 만약 자식중 한명이 zombie이면 death시그널을 init에게 보내 init이 자식을 죽이도록 한다.&lt;br /&gt;
# 혹은 자신의 부모에게 위와 같은 일을 하도록 위임한다. &lt;br /&gt;
&lt;br /&gt;
== exit handler ==&lt;br /&gt;
: &amp;lt;code&amp;gt;#include stdlib.h&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;void atexit(void (*func)(void);&amp;lt;/code&amp;gt;&lt;br /&gt;
exit handler는 최대 32개까지 등록될수 있으며 시스템이 exit됨과 동시에 자동으로 호출된다. 등록한 함수가 여러 개일 때 등록한 역순으로 수행한다.&lt;br /&gt;
&lt;br /&gt;
== 예시 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=c&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
    exit(EXIT_SUCCESS); /* or return EXIT_SUCCESS */&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>