|
一个进程通过系统调用kill(pid,sig) 向同一用户的其它进程pid发送一个软中断信号;另一进程通过系统调用signal(sig,func)捕捉到信号sig后,执行予先约定的动作func,从而实现这两个进程间的通信。
① 发送信号kill(pid,sig),本进程将指定信号sig发送给指定进程pid,其中参数为pid进程号,pid与sig均为整数值。
② 接收信号signal(sig,func),本进程接收到其它进程发送给它的信号后,完成指定的功能func。
在下面的程序中,父进程生成子进程,父进程发送信号并等待,子进程接收信号并完成某种功能,然后自我终止并唤醒父进程。
int func( );
main( )
{ int i ,j;
signal(17,func);
if(i= fork( ))
{ printf(“Parent: Signal 17 will be send to Child! \n”);
kill(i,17);
wait(0);
printf(“Parent: finished! \n”)”
}
else{ sleep(10);
printf(“Child: A signal from my Parent is received! \n”)
exit( );
}
}
func( )
{printf(“It is signal 17 processing function! \n”;)}
试写出程序的执行结果。
程序结果是什么样的啊? |
|