Page principale   Modules   Liste des composants   Liste des fichiers   Composants   Déclarations  

Interface de traitement des interruptions
[Implémentation de FRED]


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.


Documentation de la fonction

void defaultFredSignalHandler int    sig
 



Implantation

Simple impression d'un message d'erreur

00077 { 
00078   printf("\nFRFED Default Signal Handler : signal %d \n ", sig);
00079 }

void FredSignalAttach int    sig,
void(*    handler)(int)
 

Paramètres:
sig  numéro de l'interruptio(signal UNIX)
handler  procédure appelée lors de l'interruption


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 }

void FredSignalsInit  
 



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 }


Généré le Mon Jan 5 16:22:06 2004 par doxygen1.2.17