fork 执行 过程 分析

可以这样使用if语句:if( fork()在for循环执行n次fork( fork)中 , 程序的所有代码都被复制 , 所以实际的子进程也在那里 。问题是linux源代码中这三个调用的执行-3/Yes-1fork() 。
1、什么是 fork,它是干什么的,有什么作用?Linux下生成新进程的系统调用是fork function,英文意思是“分叉” 。为什么选这个名字?因为一个进程在运行,如果用fork会生成另一个进程 , 进程会“分叉”,所以名字很形象 。我们来看看fork具体怎么用 。这个程序演示了使用fork:void main(){ intI;If( fork()0){/*子进程程序*/for(I1;I编程> >其他编程语言描述:# includeVoidman () {intp1,p2;while((P1fork())1);if(i0)putchar( a );else { while(p2fork()1);if(P20)putchar( b );elseputchar( a );}}对于while语句,
【fork 执行 过程 分析】转到下一句,但是当P1和P2等于1时,fork的创建过程失败 , 那么下面的if语句执行怎么就直接退出了呢?既然P1和P2已经等于1,它们怎么可能等于0呢?感谢分析 。我先举个例子:while(真) 。它一直在循环 。While(false)永远不会循环 。这两句是解释while的用法 , 其实就是如果的意思 。
2、设计一个程序模拟三个进程并发 执行的 过程? fork函数可以生成两个进程和两个返回值:第一个是返回值为0的子进程;第二个是父进程 , 返回值是当前ID 。if语句的用法如下:if( fork( 。