리눅스에서는 프로세스를 구분하기 위해 프로세스 ID가 있어요. 그리고 getpid 시스템 호출로 자신의 프로세스 ID를 확인할 수 있고 getppid 호출로 부모 프로세스 ID를 확인할 수 있습니다.
#include <sys/types.h >
#include <unistd.h>
pid_t getpid(void);
pid_t getppid(void);
다음은 자신의 프로세스 ID와 부모 프로세스 ID를 출력하는 예제 코드입니다.
/********************************************************************** * ex_pid.c * * exmple source – print process id and parent process id * **********************************************************************/ #include <stdio.h> #include <unistd.h> int main() { printf("pid: %d\n",getpid()); printf("ppid: %d\n",getppid()); return 0; }
실행 결과를 보시면 명령행 쉘에서 프로그램을 가동하면 부모 프로세스가 쉘임을 알 수 있어요.