【发布时间】:2017-09-16 19:00:32
【问题描述】:
我对函数 fork 返回的值有点困惑。我知道值0 是为child 进程和值>0 是为parent 进程。
我有下面的代码
int main()
{
int pid;
pid = fork();
if(pid == 0)
//DO SOMETHING
else
//DO SOMETHING ELSE
return 0;
}
fork 后的有效pid 对于每个进程都不同吗?
我不明白它是如何转换价值的。我还有第二部分的代码
int main()
{
int pid;
if (pid == 0)
{
return 5;
}
printf("parent = %d waits for child = %d ", getpid(), pid);
waitpid(pid, NULL, 0);
printf("child terminates!")
return 0;
}
其中我不明白为什么 pid 与第一个 printf 一致具有 child 的值。不应该是父级的id?
【问题讨论】: