c - 使用c在linux中进行fork系统调用

标签 c

<分区>

如果我正在写这个怎么办? 我执行了两个 printf 语句!!

enter image description here

#include<stdio.h>
#include<stdlib.h>

int main(void){

    if(fork())
        printf("entering IF");
    else
        printf("entering ELSE");

    return 0;
}

最佳答案

你到底在问什么?
fork() 复制调用进程,在父进程中返回子进程的 PID,在子进程中返回 0。

在 C 中,if 将任何非零值计算为真,这意味着 进入 IF 将从父线程打印,而 进入 ELSE 来自子线程。

请注意,它们的打印顺序是不确定的,因此您可能会看到在 输入 IF 之前输入了 ELSE

参见:man(2) fork

关于c - 使用c在linux中进行fork系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48636834/

相关文章:

c - C中的这些数组声明有什么区别?

c - 从文本文件中读取目录和文件名

C、打印用户选择的月份

c - C 语言的 UART 通信

c - 如何在可执行代码中嵌入字符串?

c - 为什么 "storage size of ' array' 不是常量”

php - 变量名 - 为什么它应该以字母或下划线开头?

c - Linux 内核代码中 create_proc_entry() 和 read_proc 的替代方案

c - 从源代码(GNU 编译器)与构建窗口对话

c - 使用 pthreads 和 malloc