75.2. fork() を 3 回コールする

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