13 /* terminal line hangup */
18 /* interrupt program */
28 /* illegal instruction */
38 /* abnormal termination triggered by abort call */
43 /* floating point exception */
58 /* segment violation */
63 /* non-existent system call invoked */
68 /* write on a pipe with no reader */
73 /* real-time timer expired */
78 /* software termination signal from kill */
83 /* urgent condition present on socket */
88 /* stop (cannot be caught orignored) */
93 /* stop signal generated from keyboard */
98 /* continue after stop */
103 /* child status has changed */
108 /* background read attempted from control terminal */
113 /* background write attempted to control terminal */
118 /* I/O is possible on a descriptor see fcntl(2)) */
123 /* cpu time limit exceeded (see setrlimit(2)) */
128 /* file size limit exceeded (see setrlimit(2)) */
133 /* virtual time alarm (see setitimer(2)) */
138 /* profiling timer alarm (see setitimer(2)) */
143 /* window size change */
148 /* user defined signal 1 */
153 /* user defined signal 2 */
160 is_an_unhandled_exception(DWORD exit_code);
163 *return a non-zero value if status was returned for a child process that terminated normally.
165 #define WIFEXITED(__status) !is_an_unhandled_exception((__status))
167 /* if the value of WIFEXITED(__status) is non-zero, this macro evaluates the value the child
168 * process returned from main().
170 #define WEXITSTATUS(__status) (__status)
172 /* return a non-zero value if status was returned for a child process that terminated due to the
173 * receipt of a signal that was not caught
175 #define WIFSIGNALED(__status) is_an_unhandled_exception((__status))
177 /* if the value of WIFSIGNALED(__status) is non-zero, this macro evaluates to the number of the
178 * signal that caused the termination of the child process.
180 #define WTERMSIG(__status) (__status)
187 signal_name(DWORD got, char* expected);
190 signal_name(unsigned int got, char *expected);
197 #endif /* !__SIGNAL_H */