Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- linux
- 시스템콜
- APT
- Docker
- ubuntu
- NXP
- Go
- sudo
- AZRUE
- strace
- yocto
- 소스트리
- dash
- 상대경로
- system programming
- ubuntu20.04
- Child
- bash
- gcc
- system call
- ssh
- netstat
- Git
- Parent
- SSH 에러
- repo
- g++
- vm
- MAN
- 커널
Archives
- Today
- Total
devsojang 님의 블로그
[ System Programming ] fork 함수 본문
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
이글은 스터디 목적이며 이후에 더 업데이트 될 예정이다.
'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 |