我已经提出了一个有关fork()的问题,这里是另一个问题。 给定以下代码:
#include <unistd.h>
#include <stdio.h>
int main()
{
pid_t pid1, pid2;
pid1 = fork();
pid2 = fork();
if (pid1 != 0 && pid2 != 0)
printf("A\n");
if (pid1 != 0 || pid2 != 0)
printf("B\n");
exit(0);
}
在第二个
fork()
之后,pid1
和pid2
的值将是什么?据我所知,第一个fork设置了pid1>0
,并且在稍后创建的所有子进程中都相同。然而,pid2
会发生什么呢?感谢!