因6信号终止

时间:2010-02-25 09:21:04

标签: c++ unix gcc

我编译并运行了我的代码并得到以下错误:

Terminating because of 6 signal

什么是信号6及其原因是什么?

2 个答案:

答案 0 :(得分:6)

它可能正在谈论信号6,即SIGABRT,即中止。代码本身很可能称为abort(),或者可能是断言失败。

您可以使用

列出命令行中的信号编号
kill -l

HTH。

答案 1 :(得分:5)

信号6通常是SIGABRT。

导致这种情况的一件事是系统调用'abort()'。

看来您的程序还有一个捕获SIGABRT并打印出消息的信号处理程序,可能就像:

void handler(int signum)
{
    fprintf(stderr, "Terminating because of %d signal\n", signum);
    exit(1);
}

您还可以将SIGABRT(或6)的系统函数'kill()'或'raise()'用作信号参数。信号也可以由另一个进程发送。