Interruption sous linux

Fermé
lili - 18 nov. 2009 à 17:26
 lili - 19 nov. 2009 à 11:38
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

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
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
19 nov. 2009 à 10:07
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
19 nov. 2009 à 11:38
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