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