看看这个通信的例子
#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,父进程就发送了信号