!fork()是否创建了一个进程?

时间:2017-07-05 22:25:03

标签: c process fork

例如,如果我打电话

if (!fork())

这会创建一个新的过程,如调用

if (fork())

还是不是?

2 个答案:

答案 0 :(得分:3)

同样,在检查之前评估fork

对于函数本身,

if (!fork())if (fork())相同,但对if语句检查则不同。

答案 1 :(得分:2)

当然可以。为了执行

if (! <expression>)

首先必须评估<expression>,然后它可以反转表达式的布尔值并使用if对其进行测试。当表达式为fork()时,它调用fork函数,该函数创建一个新进程,然后在子进程和父进程中返回一个值。

它基本上只是简称:

pid_t pid = fork();
if (!pid)