fork( )小实验

Sat Jun 06 23:06:12 CST 2015 579 C/C++

文章摘要linux程序设计小实验:试用fork()系统调用创建两个子进程。

编写一段程序,试用系统调用fork( )创建两个新的子进程,此程序运行使系统中有三个活动进程存在。控制让一个进程在屏幕上显示一个字符:父进程显示“a”,子进程分别显示字符“b”和字符“c”。试观察屏幕上的显示结果,并对输出结果进行分析。

C程序:

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

int main(int argc, char** argv){
  int cnt = 0;
  while(fork()>0)
    if(++cnt == 2)
      break;

  if(0 == cnt)
    printf("a\n");
  else if(1 == cnt)
    printf("b\n");
  else
    printf("c\n");
  return 0;
}

代码共产生三个活动进程:一个父进程,两个子进程。又因为操作系统会进行进程调度,每次运行这个程序后,字符a,b,c的输出顺序不全是一样的。

打赏
打赏

分享到: