__raise()

rt_misc.h で定義されるこの関数は、ランタイム異常を示すシグナルを生成します。C ライブラリ標準にはありませんが、ARM C ライブラリでは拡張としてサポートされています。

Show/hide構文

int __raise(int signal, int type);

各項目には以下の意味があります。

signal

シグナルの番号を保持する整数です。

type

一部のシグナルの種類で、シグナルが生成された状況に関する追加情報を表す、整数、文字列定数、または変数です。

Show/hide使用法

signal() を呼び出すことによって信号を処理するように設定した場合、__raise() はユーザ指定のアクションを実行します。つまり、信号を無視するか、またはユーザ指定のハンドラ関数を呼び出します。あるいは、__raise()__default_signal_handler() を呼び出して、デフォルトの信号処理動作を行います。

__raise() 関数は、以下を定義することによって置き換えられます。

int __raise(int signal, int type);

この定義によって、C 信号メカニズムとデータを消費する信号ハンドラベクタをバイパスできますが、それ以外には基本的に以下と同じインタフェースが提供されます。

int __default_signal_handler(int signal, int type);

ライブラリのデフォルトのシグナルハンドラは __raise()type パラメータを使用して、出力するメッセージを変化させます。

Show/hide戻り値

__raise() には、以下の 3 つの復帰条件が考えられます。

復帰しない

ハンドラによって長距離のジャンプまたは再起動が実行されます。

0

シグナルが処理されたことを示します。

ゼロ以外

呼び出しコードによって戻り値を終了コードに渡す必要があります。デフォルトのライブラリの実装では、__raise() によってゼロ以外の復帰コード rc が返されると、_sys_exit(rc) が呼び出されます。

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0809AJ
Non-ConfidentialID061814