fork()||fork()和fork()&&fork()创建了几个进程
时间: 2023-12-04 11:04:50 浏览: 125
举例讲解C语言的fork()函数创建子进程的用法
表达式 `fork() || fork()` 和 `fork() && fork()` 中的 `||` 和 `&&` 都是逻辑运算符,它们的求值顺序都是从左到右。在这两个表达式中,都包含了两个 `fork()` 函数调用。
对于 `fork() || fork()`,如果第一个 `fork()` 调用返回的是一个非零值(也就是创建新进程成功),那么整个表达式的值就是 1,不会再调用第二个 `fork()`,因为此时整个表达式已经为真。如果第一个 `fork()` 调用返回的是 0,那么整个表达式的值就为假,此时会调用第二个 `fork()`。因此,最终会创建 2 个新进程。
对于 `fork() && fork()`,如果第一个 `fork()` 调用返回的是 0(也就是创建新进程失败),那么整个表达式的值就是 0,不会再调用第二个 `fork()`,因为此时整个表达式已经为假。如果第一个 `fork()` 调用返回的是一个非零值(也就是创建新进程成功),那么整个表达式的值就为真,此时会调用第二个 `fork()`。因此,最终会创建 3 个新进程。
阅读全文