C-standard-library-c-function-raise

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-raise()

説明

Cライブラリ関数* int raise(int sig)により、信号 *sig が生成されます。 sig 引数はSIGマクロと互換性があります。

宣言

以下は、signal()関数の宣言です。

int raise(int sig)

パラメーター

  • sig -これは送信する信号番号です。 以下はいくつかの重要な標準信号定数です-
Sr.No. Macro & Signal
1

SIGABRT

(信号アボート)アボート機能によって開始されるなどの異常終了。

2

SIGFPE

(信号浮動小数点例外)ゼロ除算やオーバーフローを引き起こす演算などの誤った算術演算(必ずしも浮動小数点演算ではない)。

3

SIGILL

(信号の不正な命令)不正な命令などの無効な機能イメージ。 これは通常、コードの破損またはデータの実行の試行が原因です。

4

SIGINT

(信号割り込み)インタラクティブな注意信号。 通常、アプリケーションユーザーによって生成されます。

5

SIGSEGV

(信号セグメンテーション違反)ストレージへの無効なアクセス-プログラムがメモリの外で読み書きしようとすると、プログラムに割り当てられます。

6

SIGTERM

(Signal Terminate)プログラムに送信された終了要求。

戻り値

この関数は、成功すればゼロを返し、そうでなければゼロ以外を返します。

次の例は、signal()関数の使用法を示しています。

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

void signal_catchfunc(int);

int main () {
   int ret;

   ret = signal(SIGINT, signal_catchfunc);

   if( ret == SIG_ERR) {
      printf("Error: unable to set signal handler.\n");
      exit(0);
   }
   printf("Going to raise a signal\n");
   ret = raise(SIGINT);

   if( ret !=0 ) {
      printf("Error: unable to raise SIGINT signal.\n");
      exit(0);
   }

   printf("Exiting...\n");
   return(0);
}

void signal_catchfunc(int signal) {
   printf("!! signal caught !!\n");
}

上記のプログラムをコンパイルして実行し、次の結果を生成しましょう-

Going to raise a signal
!! signal caught !!
Exiting...