Namespaces
Variants

raise

From cppreference.net
ヘッダーで定義 <signal.h>
int raise ( int sig ) ;

プログラムにシグナル sig を送信します。 signal() を使用して指定されたシグナルハンドラが呼び出されます。

ユーザー定義のシグナル処理戦略がまだ signal() を使用して設定されていない場合、シグナルが無視されるかデフォルトハンドラが呼び出されるかは実装定義です。

目次

パラメータ

sig - 送信するシグナル。実装定義の値または以下のいずれかの値を指定できます:
シグナルタイプを定義する
(マクロ定数)

戻り値

0 成功時は0、失敗時は非ゼロの値を返します。

#include <signal.h>
#include <stdio.h>
void signal_handler(int signal)
{
    printf("Received signal %d\n", signal);
}
int main(void)
{
    // シグナルハンドラをインストール
    signal(SIGTERM, signal_handler);
    printf("Sending signal %d\n", SIGTERM);
    raise(SIGTERM);
    printf("Exit main()\n");
}

出力:

Sending signal 15
Received signal 15
Exit main()

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.14.2.1 raise関数 (p: 194-195)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.14.2.1 raise関数 (p: 267)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.14.2.1 raise関数 (p: 248)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.7.2.1 raise関数

関連項目

特定のシグナルに対するシグナルハンドラを設定する
(関数)