32 lines
849 B
C
32 lines
849 B
C
/* Exemple d'illustration des primitives Unix : Un père et ses fils */
|
|
/* Traitement du signal SIGINT */
|
|
|
|
#include <stdio.h> /* entrées sorties */
|
|
#include <unistd.h> /* pimitives de base : fork, ...*/
|
|
#include <stdlib.h> /* exit */
|
|
#include <signal.h> /* traitement des signaux */
|
|
|
|
/* Traitant du signal */
|
|
void handler_sigint(int signal_num) {
|
|
printf("\nProcessus de pid %d : J'ai reçu le signal %d\n", getpid(),signal_num);
|
|
return;
|
|
}
|
|
|
|
int main() {
|
|
|
|
// on change les traitements de signal
|
|
for (int i = 0; i < _NSIG; i++) {
|
|
signal(i, handler_sigint);
|
|
}
|
|
|
|
printf("\nJe suis le processus principal de pid %d\n", getpid());
|
|
|
|
// on fait pleins de sleeps car traiter un signal le saute
|
|
for (int i = 0; i < 12; i++) {
|
|
sleep(5);
|
|
printf("I sleep\n");
|
|
}
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|