C言語システムコール-fork

fork

概要

forkは新しい子プロセスを生成します。


forkを呼び出したプロセスを親プロセスとして、親プロセスの属性を引き継いだ子プロセスが新しく生成されます。

forkの戻り値は、親プロセスには子プロセスのプロセスIDが返され、子プロセスには0が返されます。

forkの戻り値を確認することで場合分けを行い、親プロセスと子プロセスの処理をそれぞれ記述します。


サンプルプログラム


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

int
main(void)
{
    pid_t pid = 0;

    pid = fork();
    if(pid < 0){
        printf("Error: fork(%d) %s\n", errno, strerror(errno));
        return(-1);
    }  
    if(pid == 0){
        printf("child process\n");
        _exit(0);
    }  
    printf("parent process\n");

    return(0);
}

関連ページ