- #include <unistd.h>
- #include <signal.h>
- #include <stdio.h>
- #include <stdlib.h>
- void handler(int signum ){
- printf("signal caught\n");
- _exit(0);
- }
- int main() {
- pid_t pid;
- struct sigaction new_action, old_action;
- new_action.sa_handler = handler;
- sigemptyset (&new_action.sa_mask);
- new_action.sa_flags = 0;
- sigaction(SIGINT, &new_action, &old_action);
- if (pid = fork()) { //parent
- printf("killing.\n");
- sleep(2);
- kill(pid, SIGINT);
- sleep(2);
- printf("hihi\n");
- } else {
- for(;;);
- }
- return EXIT_SUCCESS;
- }