当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : signal()函数无法正常工作
帖子发表于 : 2009-06-04 14:50 

注册: 2008-05-09 21:00
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
简单的有关进程信号的程序
/*signaltest.c*/

#include <signal.h>
#include <stdio.h>
#include <unistd.h>

void ouch(int sig)
{

printf("OUCH! - I got signal %d\n", sig);

}


//self defined signal deal function

int main()
{
(void) signal(SIGINT, ouch);

while(1){
printf("Hello World! \n");
sleep(1);
}

}
/////////////////////////////////////
//gdb debug run
Starting program: /home/urey/signtest
Hello World!
Hello World!
Hello World!
(press ctrl-c when running here)
Program received signal SIGINT, Interrupt.
0xb7fb7410 in __kernel_vsyscall ()
(gdb)

signal()函数无法正常工作,没有将SIGINT信号传递给ouch()函数处理,而是依照内核默认中断处理. 程序在别人的电脑上可以正常运行。程序应当输出"OUCH! - I got signal 2" 在按下ctrl-c之后. 你可以自己尝试一下.非常感谢。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: signal()函数无法正常工作
帖子发表于 : 2009-06-04 18:29 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
代码:
(gdb) handle   SIGINT   nostop   print   pass     
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) y
Signal        Stop      Print   Pass to program Description
SIGINT        No        Yes     Yes             Interrupt
(gdb) run
Starting program: /home/sagaxu/a.out
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Hello World!

Program received signal SIGINT, Interrupt.
OUCH! - I got signal 2
Hello World!
Hello World!

Program received signal SIGINT, Interrupt.
OUCH! - I got signal 2
Hello World!
Hello World!
Hello World!
Hello World!

Program received signal SIGINT, Interrupt.
OUCH! - I got signal 2
Hello World!


_________________
目前负债150多万


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译