[libc] raise

raise関数は現在のプロセスにシグナルを送る関数らしく、以下のコマンドと同義らしい。


kill(getpid(), sig)


とりあえずサンプルを作ってみた

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


void *test()
{
        printf("raise\n");
}


int main()
{

        signal(SIGINT, (void *)test); /* signalの設定*/

        while(1) {

                raise(SIGINT); /* SIGINTを発生させる */
                sleep(1);
        }
        return 0;
}

以下が出力結果

test /* 1秒おき、もしくは割り込みが入った時にtestが表示される */
test

簡単なサンプルでしたとさ。この関数の仕様用途はバックグラウンドプロセスで統計処理とかする時に使うと予想。 たぶんraise()よりも、kill(getpid(), ...)って感じで使われることのほうが多いとは思う。