次のコード:
B() {
pid_t pid;
if ((pid=fork())!= 0)
waitpid(pid,NULL,0);
printf("2 ");
if (fork() == 0)
{ printf("3 "); exit(0); }
printf("5 ");
exit(0);
}
出力の1つを持つことができます:そして、どれが正しい出力かわかりません。
232553
235325
232355
235253
252533
これらの 2 行は、pid が親である場合、何を待つかを意味します。
if ((pid=fork())!= 0)
waitpid(pid,NULL,0);
子プロセス (fork = 0) の場合は、3 を出力します。正しいですか?
if (fork() == 0)
{ printf("3 "); exit(0); }