2012-04-23 2 views
4

を殺す、アラーム信号、この信号は3秒後に到着したとき、f関数は、親プロセスIDをつかむ、とにSIGINTシグナルを送信するのを待ちます子プロセス子供が3秒エラーコンパイルプロセスSIGALRMは、このプログラムは、子プロセスを作成します

#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(); 
     } 
    } 

後に親を殺すので、それを殺す私はこのエラーを得た:

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’ 

答えて

6

停止はあなたの変数でfに踏み。

+0

踏みは何を意味するのでしょうか? D: 'F' –

+0

変数の名前を変更してください –

+0

ああうんうん... Fフォーク... blablabla ... THXという名前の複数のものが存在しないように –