関数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というプログラムが動いていることがわかる。