fork() 알고리즘을 통해 나오는 output(초보인데 진짜 답을 모르겠어요ㅜㅜ)

익명 사용자의 이미지

<code lang="c">
int main()
{
	int pid;
	pid = fork();
	if (pid == 0)
		printf("I am child\n");
	else
		printf("I am parent\n");
 
}

위 코드를 통해서 나오는 결과 값이 어떻게 될까요? 한번은 부모 한번은 자식으로 리턴되서 결국 둘 다 프린트되는 건가요? 저걸 돌렸을 때 모니터에 찍히는 출력값이 뭔지 알려주세요ㅜㅜㅜ 그리고 왜 이렇게 나오는지도 설명가능하시면 좀 부탁드리겠습니다ㅜㅜ

Yi Soo An@Google의 이미지

직접 실행해서 찍어보세요.

---------------
Happy Hacking!

ㅂㅈㅇ의 이미지

윈도우 환경이라서 실행이 안되요ㅠㅠㅠ

라스코니의 이미지

1) VMware player (개인 사용은 무료) 또는 VirtualBox 설치
2) Guest OS로 우분투 최신 버전 설치
3) 컴파일 gcc fork.c
4) 실행, ./a.out

Stephen Kyoungwon Kim@Google의 이미지

2)를 하기 싫다면, 이미 2)가 되어 있는 이미지를 다운받아 VirtualBox나 VMWare에 추가하는 방법이 있습니다.

https://www.osboxes.org/ubuntu/