では悪ノリながら 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