이 름
fork − 자 식 프 로 세 스 를 만 든 다 .
사 용 법
#include <unistd.h>
pid_t fork(void);
설 명
fork는 부 모 프 로 세 스 와 는 단 지 PID와 PPID만 이 다 른 자 식 프 로 세 스 를 만 든 다 . 그 리 고 자 원 사 용 량 을 0으 로 맞 춘 다 . 파 일 락 (lock)과 시 그 널 펜 딩 (pending)은 상 속 받 지 않 는 다 .
리 눅 스 에 서 , fork는 copy-on-wite 페 이 지 들 를 사 용 하 여 수 행 되 며 , fork의 유 일 한 단 점 은 부 모 프 로 세 스 의 페 이 지 테 이 블 을 복 사 하 고 자 식 프 로 세 스 에 대 한 task 구 조 체 를 만 들 기 위 해 필 요 한 시 간 과 메 모 리 이 다 .
반 환 값
성 공 시 , 자 식 프 로 세 스 의 PID가 부 모 에 게 리 턴 되 며 , 자 식 에 게 는 0이 리 턴 된 다 . 실 패 할 경 우 , −1이 부 모 에 게 리 턴 되 며 , 자 식 은 생 성 되 지 않 는 다 . 그 리 고 errno는 적 절 한 값 으 로 설 정 된 다 .
에 러
EAGAIN |
부 모 프 로 세 스 의 페 이 지 테 이 블 들 을 복 사 하 기 위 한 충 분 한 메 모 리 를 할 당 할 수 없 거 나 자 식 프 로 세 스 를 위 해 태 스 크 구 조 체 를 할 당 할 수 없 다 . | ||
ENOMEM |
메 모 리 가 꽉 차 서 필 요 한 커 널 구 조 체 를 할 당 할 수 없 다 . |
호 환
SVr4, SVID, POSIX, X/OPEN, BSD 4.3
관 련 항 목
clone(2), execve(2), vfork(2), wait(2)
역 자
정 강 훈 <skyeyes [AT] soback.net>, 2000년 4월 27일