免费注册 查看新帖 |

Chinaunix

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

请教 关于 信号 使用的问题 (比较急 先谢过了) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-19 13:38 |只看该作者 |倒序浏览
我在内核模块中 用kill_proc()给用户空间的子线程 发送信号 信号编号为50。 线程id通过ioctl传给了内核
内核中10ms会发送一次,但是在用户空间的程序中 发现 接受到的 信号 除了我发送的还有其他发送者。(我猜想)因为我用signal装载的处理函数被多调用了好多次

我想知道有什么方法能够区分 不同信号的发送者 以便知道那些是我发送的信号(其实就是要首先判断中断源)
谢谢各位了

ps:我试过其他信号编号了也是由额外的信号受到

论坛徽章:
0
2 [报告]
发表于 2008-07-19 13:39 |只看该作者
http://linux.chinaunix.net/bbs/thread-906068-1-1.html
看看上面这个满足你的需求不。

论坛徽章:
0
3 [报告]
发表于 2008-07-19 13:59 |只看该作者
谢谢 ,看了你推荐的帖子我想知道
siginfo->si_pid  可以区分内核和用空空间的线程吗?
也就是说pid 在内核和用户空间的编号有重复的吗?
因为我的信号是用kill_proc 由内核发送给用户的

论坛徽章:
0
4 [报告]
发表于 2008-07-19 14:11 |只看该作者
原帖由 yangmiao 于 2008-7-19 13:59 发表
谢谢 ,看了你推荐的帖子我想知道
siginfo->si_pid  可以区分内核和用空空间的线程吗?
也就是说pid 在内核和用户空间的编号有重复的吗?
因为我的信号是用kill_proc 由内核发送给用户的



我没有试过,你也可以试一试啊,在内核线程中打印它的pid,然后看和signal函数打印出来的是不是一样的。

论坛徽章:
0
5 [报告]
发表于 2008-07-20 11:17 |只看该作者
我试过了
所有软中断 打印出来的 siginfo->si_pid全部都等于0。
并且我查了siginfo 的结构
siginfo_t {
int      si_signo;  /* 信号值,对所有信号有意义*/
int      si_errno;  /* errno值,对所有信号有意义*/
int      si_code;   /* 信号产生的原因,对所有信号有意义*/
pid_t    si_pid;    /* 发送信号的进程ID,对kill(2),实时信号以及SIGCHLD有意义 */
uid_t    si_uid;    /* 发送信号进程的真实用户ID,对kill(2),实时信号以及SIGCHLD有意义 */
int      si_status; /* 退出状态,对SIGCHLD有意义*/
clock_t  si_utime;  /* 用户消耗的时间,对SIGCHLD有意义 */
clock_t  si_stime;  /* 内核消耗的时间,对SIGCHLD有意义 */
sigval_t si_value;  /* 信号值,对所有实时有意义,是一个联合数据结构,可以为一个整数(由si_int标示,也可以为一个指针,由si_ptr标示)*/
       
void *   si_addr;   /* 触发fault的内存地址,对SIGILL,SIGFPE,SIGSEGV,SIGBUS 信号有意义*/
int      si_band;   /* 对SIGPOLL信号有意义 */
int      si_fd;     /* 对SIGPOLL信号有意义 */
}

也就是说 si_pid;    /* 发送信号的进程ID,对kill(2),实时信号以及SIGCHLD有意义 */
而我在内核调用的 是kill_proc()

可能这个参数没有意义。。。。。。。。。
还有其他的方法吗

论坛徽章:
0
6 [报告]
发表于 2008-07-20 11:50 |只看该作者
我在想 如果没有其他线程来发送信号 ,那么这些多余的信号时从哪里来的?
会不会 在内核中连续发送了很多次信号 而用湖空间 一下也收到了很多次 由于信号不会丢失 而是进行了排队。

我不知道我这样推理对不对

各位xdjm 帮帮忙
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP