c - IF 语句中没有 fork

标签 c fork

为什么这两个语句不等价?

如果 i==3 则执行 fork()。

如果 i!=3 则 fork() 不会被执行。

这是怎么回事?这是某种编译器优化故障吗?

if((i==3) && (fork()==0))
if((fork()==0) && (i==3))

最佳答案

这称为short-circuit evaluation 。如果第一项为 false,您知道整个 && 将为 false,因此许多语言故意跳过第二个评估。

关于c - IF 语句中没有 fork ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29352802/

相关文章:

Android NDK - 链接共享库和 JNI 包装器时出错

c++ - STM32 NVIC ADC 中断未触发

python - 来自 flac 文件的数组中的 PCM 数据

c - 在调用返回行为方面,fork() 和 exec() 系统调用与其他系统调用有何不同?

c - 管道和 fork() - 如何通过 C 中的管道编写 int 数组?

unix - 可以从它外面派生一个进程吗?

c - 将两个二进制文件合并到一个新文件中

c - 获取结构/链接列表的错误

c - 分析多进程程序

c++ - Linux:获取孙子的 pid C++