Operating system 这个程序创建了多少个进程
求求你,我的大学博士太懒了,没法解答这道考题,有人能帮我吗Operating system 这个程序创建了多少个进程,operating-system,fork,Operating System,Fork,求求你,我的大学博士太懒了,没法解答这道考题,有人能帮我吗 #include <stdio.h> #include <unistd.h> int main() { int i; for(i=0;i<3;i++) if(fork()) i++; while(1); return 1; } #包括 #包括 int main(){ int i; 对于(i=0;iwhile循环,您拥有的不是无限的,因为它们最终将返回一个
#include <stdio.h>
#include <unistd.h>
int main() {
int i;
for(i=0;i<3;i++)
if(fork()) i++;
while(1);
return 1;
}
#包括
#包括
int main(){
int i;
对于(i=0;iwhile循环,您拥有的不是无限的,因为它们最终将返回一个值并退出。然而,我认为,您所说的进程是指在内存中单独运行的不同线程
编辑:
在本例中,您将通过调用fork()生成一个线程
方法,该方法将第一次返回true,并执行if语句。此时,i将变为1,在for循环结束时,i将增加1,因此下一次迭代的i=2。此时,您将再次调用fork,然后循环将退出,因此答案是在结束时有2个线程是的,通过进程,我指的是new thread@mmvsbg,但是当第一次调用fork时,创建的线程将有一个变量I=0,这个创建的线程将创建一个变量I=0的子线程,依此类推……是这样吗?请看我上面的回答,我做了一个编辑。线程本身不会有一个变量I。I整数只是你的for循环unter,它决定了调用fork()的次数。为什么不试着输入一些printf
语句,然后自己运行它呢?这会让你清楚地知道每个进程在做什么。