fork()
이다.fork()
시스템 호출을 통한 리턴값을 통해 부모 프로세스인지 자식 프로세스인지를 구별할 수 있다.fork()
시스템 호출 후에 리턴값이 다른 것을 확인할 수 있다. 이 리턴값을 이용하여 부모 프로세스와 자식 프로세스를 구별할 수 있는데 이 때 pid 즉, 프로세스 ID 값이 0이면 자식 프로세스라는 의미이고 프로세스 ID 값이 0이 아닌 다른 값이면 부모 프로세스라는 의미가 된다.[실습 코드1]
#include <stdio.h>
#include <unistd.h>
int main() {
int pid;
printf("[%d] 프로세스 시작 \n", getpid());
pid = fork();
printf("[%d] 프로세스 : 리턴값 [%d]\n", getpid(), pid);
}
[실습 결과1]
fork()
시스템 호출 시 물려받는다.[실습 코드2]
#include <stdio.h>
#include <unistd.h>
int main() {
int pid, gid;
printf("PARENT : PID = %d GID = %d\n", getpid(), getpgrp());
pid = fork();
// pid값이 0이면? -> 자식 프로세스
if (pid == 0) {
printf("CHILD : PID = %d GID = %d\n", getpid(), getpgrp());
}
}
[실습 결과2]