日期:2014-05-16  浏览次数:21044 次

wait()操作
请问下面的程序能否实现,创建4个子进程,每个子进程都打印“HELLO”后立刻终止,父进程等待4个子进程都终止后,打印“BYE”,然后终止
main()
{
  int sv;
  if (fork() == 0) { /* 第一个子进程 */
  printf(”HELLO\n”); /* 打印 */
  exit(0); /* 进程终止 */
  } else if (fork() == 0) { /* 第二个子进程 */
  printf(”HELLO\n”); /* 打印 */
  exit(0); /* 进程终止 */
  }else if(fork()==0){
  printf(”HELLO\n”); /* 打印 */
  exit(0); 
  }else if(fork()==0){
  printf(”HELLO\n”); /* 打印 */
  exit(0); 
  }

  wait(&sv); wait(&sv); wait(&sv);wait(&sv);/* 父进程等待两个子进程终止 */
  printf(”BYE\n”);
}


------解决方案--------------------
可以啊.

父进程每一次返回都继续走下一个if分支.
------解决方案--------------------
wait的参数是status,不是pid..