This table describes what each signal means.
Signal | Description | Default action |
---|---|---|
SIGABRT | Abnormal termination, issued by functions such as abort() | Kill the process and write a dump file |
SIGALRM | Alarm clock, issued by functions such as alarm() | Kill the process |
SIGBUS | Bus error, or a memory parity error (a QNX Neutrino-specific interpretation). If a second fault occurs while your process is in a signal handler for this fault, the process is terminated. | Kill the process and write a dump file |
SIGCHLD or SIGCLD | A child process terminated | Ignore the signal, but still let the process's children become zombies |
SIGCONT | Continue the process. You can't block this signal. | Make the process continue if it's STOPPED; otherwise ignore the signal |
SIGDEADLK | A mutex deadlock occurred.
If a process dies while holding a mutex, and you haven't called
SyncMutexEvent()
to set up an event to be delivered to the mutex's owner when the mutex
dies, the kernel delivers a SIGDEADLK to all
threads that are waiting on the mutex without a timeout.
SIGDEADLK and SIGEMT refer to the same signal. Some utilities (e.g., gdb, ksh, slay, and kill) know about SIGEMT, but not SIGDEADLK. |
Kill the process and write a dump file |
SIGEMT | EMT instruction (emulation trap)
SIGDEADLK and SIGEMT refer to the same signal. Some utilities (e.g., gdb, ksh, slay, and kill) know about SIGEMT, but not SIGDEADLK. |
Kill the process and write a dump file |
SIGFPE | Floating point exception | Kill the process and write a dump file |
SIGHUP | Hangup; the session leader died, or the controlling terminal closed | Kill the process |
SIGILLa | Illegal hardware instruction. If a second fault occurs while your thread is in a signal handler for this fault, the process is terminated. | Kill the process and write a dump file |
SIGINT | Interrupt; typically generated when you press CtrlC or CtrlBreak (you can change this with stty) | Kill the process |
SIGIO | Asynchronous I/O | Ignore the signal |
SIGIOT | I/O trap; a synonym for SIGABRT | Kill the process |
SIGKILL | Kill. You can't block or catch this signal. | Kill the process |
SIGPIPE | Write on pipe with no reader | Kill the process |
SIGPOLL | System V name for SIGIO | Ignore the signal |
SIGPROF | Profiling timer expired. POSIX has marked this signal as obsolescent; QNX Neutrino doesn't support profiling timers or send this signal. | Kill the process |
SIGPWR | Power failure | Ignore the signal |
SIGQUIT | Quit; typically generated when you press Ctrl\ (you can change this with stty) | Kill the process and write a dump file |
SIGSEGV | Segmentation violation; an invalid memory reference was detected. If a second fault occurs while your process is in a signal handler for this fault, the process will be terminated. | Kill the process and write a dump file |
SIGSTOP | Stop the process. You can't block or catch this signal. | Stop the process |
SIGSYS | Bad argument to system call | Kill the process and write a dump file |
SIGTERM | Termination signal | Kill the process |
SIGTRAP | Trace trap | Kill the process and write a dump file |
SIGTSTP | Stop signal from tty; typically generated when you press CtrlZ (you can change this with stty) | Stop the process |
SIGTTIN | Background read attempted from control terminal | Stop the process |
SIGTTOU | Background write attempted to control terminal | Stop the process |
SIGURG | Urgent condition on I/O channel | Ignore the signal |
SIGUSR1 | User-defined signal 1 | Kill the process |
SIGUSR2 | User-defined signal 2 | Kill the process |
SIGVTALRM | Virtual timer expired. POSIX has marked this signal as obsolescent; QNX Neutrino doesn't support virtual timers or send this signal. | Kill the process |
SIGWINCH | The size of the terminal window changed | Ignore the signal |
SIGXCPU | Soft CPU time limit exceeded see the RLIMIT_CPU resource for setrlimit()) | Kill the process and write a dump file |
a One possible cause for a SIGILL signal is trying to perform an operation that requires I/O privileges. A thread can request these privileges by making sure it has the PROCMGR_AID_IO ability enabled (see procmgr_ability()) and then calling ThreadCtl()) specifying the _NTO_TCTL_IO flag:
ThreadCtl( _NTO_TCTL_IO, 0 );