找回密码
 注册
查看: 639|回复: 3

求助一个关于signal函数的问题!

[复制链接]
发表于 2005-5-23 13:31:13 | 显示全部楼层 |阅读模式
唉,CSDN上linux/unix版块的人真是太少了,就看这里怎么样了

这个signal函数我搞了好久,还是不明白:他的工作过程究竟是怎么样的?
比方说下面的程序为一个子进程执行过程:

[code:1]{
1.        wait_flag = 1;
2.        signal(16,stop);
3.        while(wait_flag) ;
4.        printf("\n Child process 1 is killed by parent !!\n");
5.        exit(0);
}[/code:1]

我先说一下我自己的理解:
当这个子进程执行到第2句时,它不会停在那里等待信号16到达,而是继续往下走.signal函数就开始监视信号16是否到达,当信号16到达,不管这个子进程执行到了哪里,只要还没退出子进程,他就转去执行stop函数.

请问我这样理解对吗?


另外,signal函数是不是第一次执行的时候不管信号16是否到达,都要先执行一遍stop函数的?(应该不会吧?)

麻烦大家讲一下这个signal函数到底是怎么工作的好吗?谢谢各位了!
发表于 2005-5-23 16:11:08 | 显示全部楼层
我理解也是这样的:

当这个子进程执行到第2句时,它不会停在那里等待信号16到达,而是继续往下走.signal函数就开始监视信号16是否到达,当信号16到达,不管这个子进程执行到了哪里,只要还没退出子进程,他就转去执行stop函数.


在信号16到达之前,不会执行stop函数的!

具体man signal看看吧?!
回复

使用道具 举报

发表于 2005-5-23 16:53:06 | 显示全部楼层
signal就是建立一个接收到的信号和对该信号的处理函数对应,这样接收到该信号时去执行该函数。
回复

使用道具 举报

 楼主| 发表于 2005-5-23 17:13:25 | 显示全部楼层
多谢回答

其实我下午已经问过老师,搞定了

仍然感谢二位! :-)
回复

使用道具 举报

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

本版积分规则

GMT+8, 2025-2-8 15:18 , Processed in 0.200958 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

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