2012-04-23 7 views
4

Ce programme créera un processus enfant, le processus enfant attendra un signal ALARM, lorsque ce signal arrivera après 3 secondes, la fonction f récupérera l'ID du processus parent et enverra un signal SIGINT à tuez-le, pour que l'enfant va tuer le parent après 3 secondesErreur lors de la compilation SIGALRM kill

#include <stdio.h> 
    #include <unistd.h> 
    #include <signal.h> 
    #include <string.h> 

    void f(int sig) 
    { 
     kill(getppid(),SIGINT); 
    } 

    main() 
    { 
     int f=fork(); 
     if(f==0) 
     { 
      signal(SIGALRM,f); 
      alarm(3); 
     } 
     else 
     { 
      pause(); 
     } 
    } 

Je suis cette erreur:

test13.c: In function ‘main’: 
test13.c:16:3: warning: passing argument 2 of ‘signal’ makes pointer from integer without a cast 
/usr/include/signal.h:101:23: note: expected ‘__sighandler_t’ but argument is of type ‘int’ 

Répondre

6

Arrêtez piétiner f avec votre variable.

+0

qu'est-ce que le stomping signifie? –

+0

Essayez de renommer les variables comme s'il n'y a pas plusieurs choses nommées 'f' –

+0

ah ouais ouais ... f fourche ... blablabla .. thx: D –

Questions connexes