devsojang 님의 블로그

[ System Programming ] fork 함수 본문

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를 생성한다.

이때 호출을 하는 processparent process가 되고 , 생성된 processchild 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 processchild processID를 반환한다. 

fork 함수가 실패하면 -1을 리턴한다.

 

자세한 내용은 Linuxman 페이지를 활용하면 된다. 

$ 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

 

 

이글은 스터디 목적이며 이후에 더 업데이트 될 예정이다.

'Linux' 카테고리의 다른 글

상대경로를 조심해라 (feat. 스크립트)  (0) 2025.09.16
dash -> bash 변경  (0) 2025.09.07
gcc/g++10 설치 (feat. ubuntu 20.04)  (0) 2025.02.28
ssh 설치 및 해결책들  (0) 2025.02.19
System Call 확인하기 (feat. strace)  (0) 2025.01.24