#include #include #include #include static int ec = 0; void action(int sig, siginfo_t *info, void *junk) { ec = (((size_t)info == SI_USER) ? 1 : 0); } int main(void) { struct sigaction sa; sa.sa_handler = NULL; sa.sa_sigaction = action; sa.sa_flags = SA_SIGINFO | SA_RESETHAND; sigemptyset(&sa.sa_mask); sigaddset(&sa.sa_mask, SIGINT); sigaction(SIGINT, &sa, NULL); kill(getpid(), SIGINT); return ec; }