The contents of this page are licensed under the following license
Operating System
Signals -- interrupt from a keyboard |
#include <stdio.h> #include <signal.h> #include <stdlib.h> void end(int signo) { printf("\n\nInterrupt from keyboard!\n"); exit(0); } int main() { /* signal -- SIGINT -- handling */ signal(SIGINT, end); /* infinite loop */ while(1); } |
Signals to a child process |
#include <stdio.h> #include <signal.h> #include <stdlib.h> int end = 0; void sigservice(int signo) { printf("Signal!\nEND!\n"); end = 1; exit(0); } int main() { int pid; if ((pid=fork()) == 0) { /* signal -- SIGINT -- handling */ signal(SIGINT, sigservice); while(end == 0); } printf("Waiting...\n"); sleep(5); printf("Sending signal no 2 to the child process [PID=%d]\n", pid); kill(pid, 2); } |
November, 29th 2006 © Michał Kalewski