我编译并运行了我的代码并得到以下错误:
Terminating because of 6 signal
什么是信号6及其原因是什么?
答案 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()'用作信号参数。信号也可以由另一个进程发送。