이슈 자유·수다 게시판 글쓰기 게시판 즐겨찾기

리눅스 프로그래밍

H컵운영자

15.12.02 10:10:59추천 0조회 1,269
144901848991472.jpg
144901849879174.jpg

 

리눅스 프로그래밍좀 질문드립니다.

 

보시다시피 리눅스 프로그래밍 공부중인데요

 

책에 나와있는 결과창은 자식,부모,부모순으로 나와야 하는데

 

계속 부모 자식 부모순으로 나옵니다... 이유가 뭔가요??

 

코드 설명좀 자세하게 부탁드립니다.

 

jcaesar 15.12.02 10:47:50

The fork() function call immediately returns without finishing to create a process, thus printf(Child pid ..) is not called until it actually creates the process. printf( parent ...) is called right after return from the fork function call. The wait (&status) statement holds until the fork() system call finished, and printf(child pid ..) is called.

만델링 15.12.02 16:47:30

if 문 조건에 안걸리니까 안나오겠죠?

만델링 15.12.02 17:35:46

저 if문은 아래 exit 가 있는것을 보니 에러나는 경우에 프로그램을 종료 시키는것 같은데
if((pid = fork()) ==0) 구문이 fork 함수가 제대로 작동해서 자식을 생성했다면 0이 나오는게 당연하고
자식에 대한것을 print 한후에 종료 되겠는데요?
결론은 뭔가 책에 결과에 대한게 나오기엔 좀 이상한 코딩인거 같습니다..
저는 리눅스에서 파이썬 가지고 DB 만지고 있는 초보DBA라 더 자세한건 다음 분이 설명해주실 겁니다. ㄷㄷ
사진첨부
목록 윗 글 아랫 글
*/?>