getppid() 함수가 리턴값으로 init 프로세스의 pid를 반환합니다.
글쓴이: thenextstep / 작성시간: 수, 2011/04/13 - 1:40오전
OS: OS X
#include <stdio.h> #include <sys/types.h> #include <unistd.h> main() { pid_t pid; if((pid=fork())==-1) perror("fork failed"); else if(pid!=0) printf("PID is %d, child process pid is %d\n",(int)getpid(),(int)pid); else printf("PID is %d, parent process pid is %d\n",(int)getpid(),(int)getppid()); }
위 코드를 실행시켰을 시
PID is 19936, child process pid is 19937
PID is 19937, parent process pid is 1
부모 프로세스의 pid값을 1로 리턴하네요.
부모 프로세스가 종료됐을때 getppid가 1을 리턴한다는데
제대로된 부모 프로세스의 id를 출력하려면 어떻게 해야하나요?
Forums:
이미 출력되신거 같네요.
자식에서 부모값을 보시고 싶다면 write함수를 사용해야할거 같습니다.
write(STDOUT_FILENO, buf, sizeof(buf)-1);
http://blog.naver.com/pjh791010/60010481121
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
wait ( )
부모 프로세스가 종료되기 직전에 wait() 함수를 추가하시면 원하는 대로 동작할 것입니다
wait( ) 함수가 무엇이고 어떻게 동작하는 지는 검색을 통해 확인하세요
아래 코드를 추가하세요
댓글 달기