因6信号终止

Ami*_*hum 3 c++ unix gcc

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

Terminating because of 6 signal
Run Code Online (Sandbox Code Playgroud)

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

fal*_*tro 6

它可能正在谈论信号6,即SIGABRT,即中止.代码本身最有可能被调用abort(),或者断言失败.

您可以使用命令行列出信号编号

kill -l
Run Code Online (Sandbox Code Playgroud)

HTH.


Jon*_*ler 5

信号6通常是SIGABRT.

导致这一点的一件事是系统调用'abort()'.

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

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

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