Fonctions | |
void | FredSignalAttach (int sig, void(*handler)(int)) |
Définir un traitant d'interruption. | |
void | FredSignalsInit () |
Initialise les traitants par défaut. | |
void | defaultFredSignalHandler (int sig) |
Traitant par défaut des interruptions. |
|
Implantation Simple impression d'un message d'erreur
00077 {
00078 printf("\nFRFED Default Signal Handler : signal %d \n ", sig);
00079 }
|
|
Implantation C'est un simple carrossage de la procédure sigaction() d'UNIX.
00020 { 00021 struct sigaction siga; 00022 siga. sa_handler=handler; 00023 siga. sa_flags=0; 00024 sigemptyset(&(siga.sa_mask)); 00025 sigaction(sig,&siga, (struct sigaction* )0); 00026 } |
|
Implantation On initialise avec un traitant par défaut sauf pour le signal SIGINT pour conserver le comportement standard UNIX du ctrlC
00053 { 00054 int i; int nsig; 00055 /* calcul du nombre de signaux */ 00056 nsig=sizeof(sigset_t)*8; 00057 for(i=0;i<nsig;i++){ 00058 if(i!=SIGINT){ 00059 FredSignalAttach(i,defaultFredSignalHandler); 00060 /* on indique de redémarrer les appels systèmes interrompus */ 00061 siginterrupt(i,1); 00062 } 00063 } 00064 } |