免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2341 | 回复: 18
打印 上一主题 下一主题

关于unix系统信号使用的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-09 11:58 |只看该作者 |倒序浏览
请教一下各位大虾:
我在unix的一些通讯程序中见到过这样的语句:
if((pid=fork())==0)
{
    signal(SIGUSR1,func);
   ...

}
else
{
    ..../*此处省去一通讯函数*/
    kill(pid,SIGUSR1);
}
void func()
{
   exit(255);
}
在unix信号中SIGUSR1是给用户使用的,它是系统定义的,不能赋值么?
它如何触发使用的呢?我很困惑 在系统中只见到此出的调用,没有其他的定义 请指点

论坛徽章:
0
2 [报告]
发表于 2004-12-09 12:06 |只看该作者

关于unix系统信号使用的问题

系统定义,不能赋值
通过kill系统调用,内核将此信号dispatch给相应进程,从而启动由signal设定的信号处理例程

论坛徽章:
0
3 [报告]
发表于 2004-12-09 14:43 |只看该作者

关于unix系统信号使用的问题

是不是可以这样理解:
在子进程中的signal(SIGURE1,func)函数调用,给SIGUSR1信号设置了func函数提供的exit(255)这个动作,在父进程通讯函数结束后,给子进程通过kill函数传递exit(255)这个动作,让子进程结束?
谢谢twen 345

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-12-09 14:49 |只看该作者

关于unix系统信号使用的问题

子进程中signal(SIGUSR1,func)指定当进程接收到SIGUSR1信号后就去调用func函数
父进程中kill(pid, SIGUSR1)是向子进程发送SIGUSR1信号

论坛徽章:
0
5 [报告]
发表于 2004-12-09 14:55 |只看该作者

关于unix系统信号使用的问题

原帖由 "童话" 发表:
是不是可以这样理解:
在子进程中的signal(SIGURE1,func)函数调用,给SIGUSR1信号设置了func函数提供的exit(255)这个动作,在父进程通讯函数结束后,给子进程通过kill函数传递exit(255)这个动作,让子进程结束?
谢..........

就是这样

论坛徽章:
0
6 [报告]
发表于 2004-12-09 15:00 |只看该作者

关于unix系统信号使用的问题

原帖由 "yuxh" 发表:
子进程中signal(SIGUSR1,func)指定当进程接收到SIGUSR1信号后就去调用func函数
父进程中kill(pid, SIGUSR1)是向子进程发送SIGUSR1信号


kill可以向任何进程发送singal,不仅仅是子进程

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2004-12-09 15:14 |只看该作者

关于unix系统信号使用的问题

他这里kill(pid, SIGUSR1)中的pid就是子进程号啊
kill当然可以向任何进程发,在shell下面也可以用kill发信号

论坛徽章:
0
8 [报告]
发表于 2004-12-09 16:44 |只看该作者

关于unix系统信号使用的问题



楼上说的好像有问题吧  

“他这里kill(pid, SIGUSR1)中的pid就是子进程号啊 “

要知道子进程的pid为零。然而这却是在父进程中调用的,
所以这里的pid在正常情况下应大于0。

应此,决不会给子进程。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-12-09 16:59 |只看该作者

关于unix系统信号使用的问题

考验我的耐心?
pid=fork()这句话在子进程中得到的pid=0,在父进程中得到的pid就是fork出来的子进程的进程号
不存在进程号为0的进程

论坛徽章:
0
10 [报告]
发表于 2004-12-09 17:06 |只看该作者

关于unix系统信号使用的问题

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP