C 此程序中创建了多少个进程?
我需要知道这会创建多少个进程。我认为这个项目将创建6个流程,这对吗C 此程序中创建了多少个进程?,c,fork,C,Fork,我需要知道这会创建多少个进程。我认为这个项目将创建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 (
#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;
}
#包括
#包括
int main(){
/*派生子进程*/
pid_t pid=fork();
if(pid<0){
fprintf(标准“Fork failed”);
出口(-1);
}否则如果(pid!=0){
/*fork另一个子进程*/
fork();
}
/*fork另一个子进程*/
fork();
返回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;
}
在我的程序运行过程中,似乎总共有6个进程,包括原始进程。让我猜猜。。作业恐怕你得自己去弄清楚。该死,这么多重复。这个问题似乎离题了,因为它是关于homwork的,而且是一个大重复。@Martin James:我知道你在那里做了什么……但他考试时不会有电脑——所以也许知道fork()返回的值是这里的方法。。。
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