Interruption sous linux

lili -  
 lili -
Bonjour,
je voudrai savoir comment on fait pour mettre en oeuvre la routine d'erreur de division par zero sur linux???
et aussi savoir comment afficher un msg juste avant son traitement
A voir également:

1 réponse

Manu
 
Bonjour,

je voudrai savoir comment on fait pour mettre en oeuvre la routine d'erreur de division par zero sur linux
Ca se fait par un appel système signal(2) - faire "man 2 signal". Grosso modo on passe en argument la fonction qui gère l'erreur. Le code de l'erreur de division par zéro est SIGFLT.

et aussi savoir comment afficher un msg juste avant son traitement

Euh... par printf(1) dans la fonction de remplacement.

Bien ceci peut être emballé sous différentes formes selon le langage utilisé.

Manu
0
lola
 
pour mettre en oeuvre la routine ,j'ai ecris un petit pgm c
#include <stdio.h>
#include <stdlib.h>
void main()
{signal (2)}
puis g executé sur le shell
g eu un msg :segmentation fault
et pour l'affichage ,g pas compris avec ce printf(1)
????????????????????
0
Manu > lola
 
Bonjour,

Et si vous lisiez le manuel (man 2 signal) ?

Vite fait, sans tester :

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
void divzero(int code)
{ printf("divide by zero\n"); }
void main()
{signal (SIGFLT,divzero);}

Manu
0
lili > Manu
 
salut,pour la mise en oeuvre ,je pense que c bon avec signal(SIGFPE,8)
mais pour l'affichage ,je veux afficher un msg sur l'ecran ,avnt chaque traitement standard de l'intrruption
merci de bien vouloir m'aider
0