IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Detourner kill SIGHUP


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut Detourner kill SIGHUP
    Hello everybody,
    J'ai un petit soucis actuelement, Je dois créer une fonction catch_sighup en prenant en compte le prototype donné dans le man signal, qui se contente d'afficher une phrase.
    ensuite je devrais detourner le signal SIGHUP qui serait envoyé à mon programme executé grace à des kill SIGHUP, du coup au lieu de faire ce que le programme fait habituelement quand il reçoit SIGHUP, il affichera juste ma phrase. j'ai essayer plein de chose mais le SIGHUP fini toujours par killer le PID de mon prog, vlc par example.. si quelqu'un a une idée ce serait gentil parceque la je séche...Merciii!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 4
    Par défaut Résolu
    J'ai trouvé , pour ceux qui pourrait faire face au même probléme :

    on crée une fonction qui affiche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void mysighup()
    {
      printf("I caught the SIGHUP signal!\n");
      return;
    }
    et on utilise la fonction signal (voir le man pour le prototype) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      if (signal(SIGHUP, mysighup) == SIG_ERR)
        printf("Cannot handle SIGHUP!\n");
    (on fait l'appel de fonction en même temps qu'on fait la condition au cas où le detournement echoue).

    ajoutez un while(1) pour boucler inf. a la fin du main.

    lancez le programe et un autre terminal -> tapez ps -e pour trouver le pid du prog (a.out si compilé juste avec cc) ou appelez getpid() et un printf avant la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     printf("My PID is %d.\n", getpid());
    et sur le terminal 2 envoyez : kill -s signal pid (signal étant à remplacer par SIGHUP où autre celon le code testé) et pid par celui du prog. le signal sera detourné et la magie du printf oppérera. Merci quand même à ceux qui auraient pu aider

Discussions similaires

  1. fork kill
    Par krusaf dans le forum Windows
    Réponses: 5
    Dernier message: 01/09/2005, 11h32
  2. Passage de paramètre à KILL
    Par annedjomo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2005, 10h58
  3. Kill en mode graphique
    Par devmat dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 19/05/2005, 12h36
  4. Kill procédure qui continue de tourner en bas. 9i
    Par nuke_y dans le forum Oracle
    Réponses: 10
    Dernier message: 15/11/2004, 10h06
  5. [Kill]tuer un process
    Par parisjohn dans le forum C
    Réponses: 9
    Dernier message: 27/08/2004, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo