【发布时间】:2021-05-04 20:45:23
【问题描述】:
我有 2 个程序,我对子进程中 fork() 的返回感到非常困惑
第一个程序将调用fork() 并将其分配给p。当p == 0时,表示子进程。
// The first program
p = fork();
if (p == 0)
{
// child process
}
else
{
// parent process or exception
}
但是如果我们只调用fork() == 0 呢?
我认为fork() 从它的docs 中返回non-zero。
因此条件永远不会被执行。
// The second program
if (fork() == 0)
{
// Would this ever be reached?
printf("A\n");
}
printf("B\n");
【问题讨论】:
-
“我认为 fork() 返回非零” - 为什么?
-
不要以这种方式更改问题,因为它会使所有 cmets 或答案无效。保留原始问题并在下面写新内容
-
分配给
p不会改变任何东西。 -
'没有足够的文档来说明 fork() 的工作原理'——这完全是错误的。
标签: c if-statement unix fork unistd.h