IT
forkdemo1.c
kio467
2014. 11. 11. 22:19
// 본격적인 shell 만들기에 들어가려면, 세가지가 필요합니다.
// 1. fork
// 2. exec
// 3. wait
// 그 중에 두번째인 exec를 먼저 해봤는데요,
// 이번엔 shell의 시작인 fork를 알아보도록 하겠습니다.
// 네... 뭐... 시작은 그리 어려운 코드가 아닙니다...
// 일단 이 코드를 실행하면 총 세 줄이 출력될 텐데요
// 비포 한 줄과 애프터 두 줄입니다.
// 포크는 실행한 시점에서 프로세스를 하나 더 만드는 시스템콜입니다.
// 아래 코드에서는 ret_from... 줄에서 프로세스가 하나 더 만들어지겠죠...
// 본래 프로세스 id가 467이라고 하면,
/**********************************
비포 467
애프터 467, 포크 468
애프터 468, 포크 0
************************************/
// 뭐 이런식으로 나오겠네요..
#include <stdio.h>
main()
{
int ret_from_fork, mypid;
mypid = getpid();
printf("before %d\n",mypid);
ret_from_fork = fork();
sleep(1);
printf("after %d, fork %d\n", getpid(), ret_from_fork);
}