首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SIGFPE信号不终止并生成核心文件。

SIGFPE信号不终止并生成核心文件。
EN

Stack Overflow用户
提问于 2014-05-15 05:02:46
回答 1查看 968关注 0票数 0

根据UNIX高级编程文档,SIGFPE信号终止程序并生成一个核心文件。

这是我的节目

代码语言:javascript
复制
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>

static void sig_fpe(int signo);

int
main()
{
        int pid;

        if(signal(SIGFPE, sig_fpe) == SIG_ERR)
                printf("Signal error\n");

        pid = 10;
        pid = pid / 0;

        exit(0);
}

static void
sig_fpe(int signo)
{
        if(signo == SIGFPE){

                printf("SIGFPE signal catch\n");
        }
}

当我在linux机器上运行这个程序时,它会反复打印"SIGFPE信号捕获“,不会终止。样本输出是

代码语言:javascript
复制
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
SIGFPE signal catch
.
.
.
.

有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-15 05:28:11

对于SIGFPE来说,这有点棘手。当SIGFPE被捕获时,如果您只是从处理程序返回指令,那么指令将被重新执行--这非常依赖于平台,但是信号的手册页提到了未定义的行为。

见此处:Unix signals doubt - on the execution of the below progem

如果您也想要核心文件,则需要重新安装默认的信号处理程序,请参阅Linux: handling a segmentation fault and getting a core dump,并启用核心文件(在Unix上使用ulimit -c ...完成)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23669639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档