gpt4 book ai didi

c - 该程序中创建了多少个进程?

转载 作者:行者123 更新时间:2023-11-30 21:42:59 26 4
gpt4 key购买 nike

我需要知道这会创建多少个进程。我认为这个程序会创建 6 个进程是对的吗?

#include <stdio.h>
#include <unistd.h>
int main() {

/* fork a child process */
pid_t pid = fork();

if (pid < 0) {
fprintf(stderr, “Fork failed”);
exit(-1);
} else if (pid != 0) {
/* fork another child process */
fork();
}

/* fork another child process */
fork();
return 0;
}

最佳答案

这就是我如何找到答案的方法。在每个 fork() 之后,我会打印当前的进程 ID。当我运行该程序时,我会记下所有唯一的进程 ID,这将告诉我存在多少个进程:

这是我的程序:

#include <stdio.h>
#include <unistd.h>
int main() {

/* fork a child process */
pid_t pid = fork();
printf("fork I: %d\n", getpid()); fflush(stdout);

if (pid < 0) {
fprintf(stderr, "Fork failed");
exit(-1);
} else if (pid != 0) {
/* fork another child process */
fork();
printf("fork II: %d\n", getpid()); fflush(stdout);
}

/* fork another child process */
fork();
printf("fork III: %d\n", getpid()); fflush(stdout);
return 0;
}

这是我的输出:

fork I: 7785
fork I: 7786
fork II: 7785
fork III: 7785
fork III: 7786
fork II: 7787
fork III: 7788
fork III: 7789
fork III: 7787
fork III: 7790

在我的程序运行中,包括原始进程在内,似乎总共有6个进程。

关于c - 该程序中创建了多少个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23476697/

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