では悪ノリながら 3 回コールしてみましょう。
だって 2 個の子プロセスが、 4 個の子プロセスになるか知りたいですよね?
main.c.
1 #include <unistd.h> 2 #include <stdio.h> 3 4 int main() 5 { 6 pid_t pid1,pid2,pid3; 7 pid1 = fork(); 8 printf("pid1: %d\n",pid1); 9 pid2 = fork(); 10 printf("pid2: %d\n",pid2); 11 pid3 = fork(); 12 printf("pid3: %d\n",pid3); 13 14 return 0; 15 }
ビルドと実行結果.
$ gcc main.c $ ./a.out pid1: 9939 pid2: 9940 pid1: 0 pid2: 0 pid3: 9941 pid2: 9942 pid3: 9943 pid3: 0 pid3: 9944 pid2: 0 pid3: 0 pid3: 0 pid3: 9945 pid3: 0
pid3 には予想どおり 4 個の子プロセスが生成されてますね。
Copyright 2018-2019, by Masaki Komatsu