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 }
|
1.2.17