【发布时间】:2012-09-07 23:15:59
【问题描述】:
有人可以向我解释一下fork() != 0 是什么意思吗?据我了解,我认为这意味着如果 fork 不是假的?或者如果 fork 是真的那么......我不明白 Fork() 如何是真或假,因为它只是创建了一个进程的副本到父子进程中。另外如果一个程序在哪里说if (Fork() == 0)是什么意思?
#include "csapp.h"
int main(void)
{
int x = 3;
if (Fork() != 0)
printf("x=%d\n", ++x);
printf("x=%d\n", --x);
exit(0);
}
【问题讨论】:
-
你读过一些关于
fork的文档吗?谷歌搜索它带来了很多解释它是如何工作的,以及你如何使用它的返回值。 -
在父母和孩子中都调用
exit是非常糟糕的做法。例如,如果进程在调用Fork之前缓冲了文件输出,则父进程和子进程在调用exit时都会刷新该输出。