tail head cat sleep
QR code linking to this page

Man page  — FORK

명칭

fork – 새로운 프로세스를 작성한다

내용

프로그램 라이브러리

Standard C Library (libc, -lc)

서식

#include <sys/types.h>
#include <unistd.h>

pid_t
fork(void);

해설

fork() 에 의해 새로운 프로세스의 작성을 합니다. 새로운 프로세스 (child process)는, 이하의 항목을 제외한 호출 프로세스 (parent process)의 정확한 카피입니다.

반환값

정상적으로 완료했을 경우, fork() (은)는, child process에 값 0 을 돌려주어, child process의 프로세스 ID 를 parent process에 돌려줍니다. 그렇지 않은 경우는 -1 이 parent process에 돌려주어져 child process는 작성되지 않고 , 에러를 나타내기 위해서(때문에) 글로벌 변수 errno 하지만 설정됩니다.

에러

다음의 경우에 fork() (은)는 처리에 실패해, child process는 작성되지 않습니다.
[EAGAIN]
  실행중의 프로세스의 합계수가 시스템의 한계를 넘습니다. 한계치는 sysctl(3) 의 MIB 변수의 KERN_MAXPROC 에 의해 지정됩니다 (슈퍼 유저를 제외해, 실제로는 한계는 이것보다 10 개 적게 됩니다).
[EAGAIN]
  유저가 슈퍼 유저가 아니고, 1 명의 유저에 의해 실행중의 프로세스의 합계수에 시스템이 부과한다 한계를 넘습니다. 한계는 sysctl(3) 의 MIB 변수의 KERN_MAXPROCPERUID 에 의해 지정됩니다.
[EAGAIN]
  유저가 슈퍼 유저가 아니고, 리소스 파라미터의 RLIMIT_NPROC 에 대응하는 소프트 리소스 한계를 넘습니다. (getrlimit(2) (을)를 참조).
[ENOMEM]
  새로운 프로세스용의 스왑 공간이 불충분합니다.

관련 항목

execve(2), rfork(2), setitimer(2), setrlimit(2), vfork(2), wait(2)

역사

fork() 함수는 AT&T v6 그리고 등장했습니다.

FORK (2) June 4, 1993

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.