首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

看看这个通信的例子,该怎么处理

2012-03-23 
看看这个通信的例子#includestdio.h#includesignal.h#includestdlib.hmain(){int pid,ivoid list()

看看这个通信的例子
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>

main(){
  int pid,i;
  void list(){
  for(i='a';i<='z';i++)
  { 
  putchar(i);
  ]
  }
  //----------------------------
  while((pid=fork())==-1);
  if(pid==0){
  signal(17,list); //接收信号17,执行list函数
  exit(0);
  }else{
  kill(pid,17); //将17信号发送给pid
  wait(0);
  exit(0);
  }
}

执行后什么也没有输出,我也不知道是哪里出问题了,可能信号没接受到就结束了


[解决办法]
你猜对了,子进程很快结束了

加一句
if(pid==0){
signal(17,list); //接收信号17,执行list函数
pause();
exit(0);

另外,最好把signal(17,list); 放在fork()之前
以免子进程还没执行signal,父进程就发送了信号

热点排行