LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 637|回复: 1

问一个关于fork函数的问题

[复制链接]
发表于 2005-3-3 11:08:24 | 显示全部楼层 |阅读模式
一个进程通过系统调用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”;)}
试写出程序的执行结果。


程序结果是什么样的啊?
发表于 2005-3-3 18:46:21 | 显示全部楼层
自己编译运行一下,就能看到结果了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表