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
Configuration: Windows XP Internet Explorer 7.0

1 réponse

  1. 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
    1. 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
      1. 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
      2. 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