首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

特意测试了除0异常,signal捕获处理了SIGFPE,但是随后陷入死循环

2013-08-01 
特意测试了除0错误,signal捕获处理了SIGFPE,但是随后陷入死循环本帖最后由 u011473808 于 2013-07-22 15:1

特意测试了除0错误,signal捕获处理了SIGFPE,但是随后陷入死循环
本帖最后由 u011473808 于 2013-07-22 15:17:40 编辑 如题,我写了个很小的程序,来测试SIGFPE如何被捕获和处理:


#include<stdio.h>
#include<signal.h>
#include<sys/types.h>
void f(int signo)
{
    printf("signo=%d\n",signo);
}
int main(int argc,char* argv[])
{
    signal(SIGFPE,f);
    int div=argc/(argc-1);
    return 0;
}

编译运行。发现程序不断的打印
signo=8
问题是,我预想这个程序只打印一次signo就应该退出啊。我的想法错在哪里?
[解决办法]
这个解释不错
http://51hired.com/questions/14965/%E5%A6%82%E4%BD%95%E5%9C%A8SIGFPE%E5%90%8E%E7%BB%A7%E7%BB%AD%E8%BF%90%E8%A1%8C%EF%BC%9F

热点排行