Linux
[ System Programming ] fork 함수
devsojang
2025. 3. 19. 12:53
fork 함수란?
fork 함수의 원형은 다음과 같다.
#include <unistd.h>
pid_t fork(void);
fork 함수는 Linux man에서 다음과 같이 정의한다.
fork - create a child process
child process를 생성한다
그렇다. Linux에서는 fork 함수를 이용해서 process를 생성한다.
이때 호출을 하는 process는 parent process가 되고 , 생성된 process는 child process가 된다.
이때 parent process의 메모리 이미지를 새로운 메모리 영역에 복사하여 child process에서 사용할 수 있게한다.
fork를 호출한 시점 이후 부터는 parent, child 각각의 메모리 영역에서 실행된다.
#include <stdio.h>
#include <unistd.h>
int main(int argc, char* argv[]) {
int id = fork();
if(id == 0) {
printf("This Process is Child : %d\n", id);
}
else
printf("This process is Parent : %d\n", id);
return 0;
}

fork 함수에서 child process 는 0을 리턴하고 parent process는 child process의 ID를 반환한다.
fork 함수가 실패하면 -1을 리턴한다.
자세한 내용은 Linux의 man 페이지를 활용하면 된다.
$ man fork

fork(2) - Linux manual page
fork(2) — Linux manual page fork(2) System Calls Manual fork(2) NAME top fork - create a child process LIBRARY top Standard C library (libc, -lc) SYNOPSIS top #include pid_t fork(void); DESCRIPTION top fork
man7.org
이글은 스터디 목적이며 이후에 더 업데이트 될 예정이다.