C & LINUX

C / LINUX vfork()

Ocean_ 2022. 5. 2. 20:50

함수 기능

생성도리 새 프로세스가 exec 계열 함수로 새 프로그램을 실행하는 경우에 사용하는 시스템 호출 함수

자식이 먼저 실행됨이 보장

함수 원형

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

pid_t vfork();

함수 예제

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<errno.h>
#include<sys/types.h>

void ssu_local_func(void);

int main(void){
    printf("Before vfork\n");
    ssu_local_func();
    printf("After ssu_local_func, my PID is %d\n",getpid());
    exit(0);
}

void ssu_local_func(void){
    pid_t pid;

    if((pid = vfork())==0)
        printf("I'm child. MY PID is %d\n",getpid());
    else if (pid>0)
        sleep(3);
    else
        fprintf(stderr , "vfork error\n");
}

함수 결과

 

리눅스시스템 프로그래밍 - 홍지만 저

교재 내에 있는 예제를 바탕으로 작성한 글 입니다.