让我们假设有一个使用PID = 1的进程,它运行以下代码:
int a = fork();
int b = fork();
printf(“a: %d, b: %d\n”, a, b); 让我们进一步假设新的PID将一个接一个地给出,所以第二个给定的PID将是2,然后是3等等。
一项可能的产出是:
a:2, b:3
a:2, b:0
a:0, b:4
a:0, b:0我在试图理解上述代码的输出时遇到了一些困难,尤其是为什么要使用a:0, b:4和a:2, b:3。
发布于 2016-08-02 09:41:41
我甚至不想回答你的问题。更多的是关于显示通常使用的模式。如果注释中有适当的代码格式,它可能是一个注释。
使用fork()的基本结构是:
if (int PID = fork() == 0 ) {
//it's a child process
} else {
//it's a parent process
}使用简单
int PID1 = fork();
int PID2 = fork();是非常危险的,因为你几乎肯定会收到Race condition。
https://stackoverflow.com/questions/38716624
复制相似问题