unix(linux)関数fork()とは

関数fork()はプロセスを新たに作る。

/* forktest.c */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
    pid_t id;

    printf("fork test\n");
    id = fork();
    printf("id = %d\n",id);
    sleep(20);
    return 0;
}

コンパイルする。

% gcc -o forktest.out forktest.c

psと並列実行する。

% ./forktest.out & ps

出力は、

fork test
id = 2377
id = 0
  PID TTY          TIME CMD
 2126 pts/14   00:00:00 bash
 2375 pts/14   00:00:00 forktest.out
 2376 pts/14   00:00:00 ps
 2377 pts/14   00:00:00 forktest.out

プロセスIDの異なる2つのforktest.outというプログラムが動いていることがわかる。

トップページへ