#topicpath


/////////////////////////////////////////////////////////////////////////////////
* 目次 [#j279b693]
#contents();

/////////////////////////////////////////////////////////////////////////////////
* raise [#uf0abea1]
- プログラム中で人為的に SIGSEGV などを引き起こすには、 raise() を使う。
- man より
 $ man raise
 
 RAISE(3)                   Linux Programmer's Manual                  RAISE(3)
 
 
 
 名前
        raise - 呼び出し元にシグナルを送る
 
 書式
        #include <signal.h>
 
        int raise(int sig);
 
 説明
        raise()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。
        シングルスレッドのプログラムでは、以下と等価である。
 
            kill(getpid(), sig);
 
        マルチスレッドのプログラムでは、以下と等価である。
 
            pthread_kill(pthread_self(), sig);
 
        シグナルに起因してシグナル・ハンドラが呼び出される場合には、    raise()
        が返るのは必ずシグナル・ハンドラが返った後になる。
 
 返り値
        成功した場合は 0 を、失敗した場合は 0 以外の値を返す。
 
 属性
    マルチスレッディング (pthreads(7) 参照)
        raise() 関数はスレッドセーフである。
 
 準拠
        C89, C99, POSIX.1-2001.
 
 注意
        glibc  バージョン 2.3.3 以降では、カーネルが tgkill(2) システムコールを
        サポートしている場合はraise() は tgkill(2) を使って実装されている。古い
        バージョンの glibc では、raise() は kill(2) を使って実装されている。
 
 関連項目
        getpid(2), kill(2), sigaction(2), signal(2), pthread_kill(3), signal(7)

- raise( sig ) に渡すシグナル値 sig は、 man 7 signal にリストアップされているシグナル名若しくはその値を指定する。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS