한가지 물어보려고 하는데
int pid = 0;
if((pid = fork()) == 0) {...}
printf(..1)
printf(..2)
이렇게 되면 1, 2 출력되고 if문으로 들어가는데 왜 이렇게 되는거야?
fork()가 parent process랑 똑같은 child process를 만드는건 알겠는데
프로그램 돌리면 보통 첫줄부터 시작해서 밑으로 내려가면 끝아니야? 왜 윗줄에 있는 if문 안에 내용이 나중에 호출이 되는거야?
3개의 댓글
무분별한 사용은 차단될 수 있습니다.
유쿤
저코드는 아마도
내가 자식프로세스라면 if문 안에것을 실행하고 종료.
내가 부모프로세스라면 밑에 printf출력하고 종료.
이렇게 동작할것임.
근데 부모프로세스가 먼저실행될지 자식프로세스가 먼저실행될지는 정해지지않았기 때문에 printf가 먼저뜰수도있고 나중에 뜰수도있음
눈팅용
아리성애자