例如,如果我打电话
if (!fork())
这会创建一个新的过程,如调用
if (fork())
还是不是?
答案 0 :(得分:3)
同样,在检查之前评估fork
。
if (!fork())
与if (fork())
相同,但对if
语句检查则不同。
答案 1 :(得分:2)
当然可以。为了执行
if (! <expression>)
首先必须评估<expression>
,然后它可以反转表达式的布尔值并使用if
对其进行测试。当表达式为fork()
时,它调用fork
函数,该函数创建一个新进程,然后在子进程和父进程中返回一个值。
它基本上只是简称:
pid_t pid = fork();
if (!pid)