tags:

views:

57

answers:

2

Hi, I compiled and ran my code and got the following error:

Terminating because of 6 signal

What is signal 6 and what causes it?

+2  A: 

Signal 6 is usually SIGABRT.

One thing that causes that is the system call 'abort()'.

It appears your program also has a signal handler that catches SIGABRT and prints out the message, maybe like:

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

You can also use the system functions 'kill()' or 'raise()' with SIGABRT (or 6) as the signal argument. The signal could also be sent by another process.

Jonathan Leffler
+4  A: 

It's probably talking about signal 6, which is SIGABRT, i.e. abort. The code itself most likely called abort(), or perhaps an assert failed.

You can list the signal numbers from the command line using

kill -l

HTH.

roe