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