gpt4 book ai didi

c - fork() 进程如何工作(操作系统)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:41 25 4
gpt4 key购买 nike

我对 fork() 感到困惑。例如,以下代码的输出是什么?

#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>

int value = 5;

int main() {
pid_t pid;
pid = fork();
if (pid == 0) { value += 15; return 0; }
else if (pid > 0>) { wait (NULL); printf (“Value = %d”, value); return 0}
}

最佳答案

函数fork()创建一个新进程,它是原始进程的完整副本。新进程有自己的内存和自己的所有变量副本。

在新的子进程中,返回的 pid 值为零。 child 将 15 添加到其变量 value 并在行中退出:

if (pid == 0) { value += 15; return 0; }

value 在原始流程中为 5。原始父进程的 pid 大于零,它转到:

else if (pid > 0) { wait (NULL); printf("Value = %d", value); return 0; }

此行打印:Value = 5

关于c - fork() 进程如何工作(操作系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com