1.10 エラー通知、エラー処理、プログラム終了処理のための C ライブラリ関数の変更

C ライブラリによって生成されるすべてのトラップシグナルまたはエラーシグナルは __raise() 関数を経由します。この関数を再実装するか、またはこの関数によって使用される低レベル関数を再実装することができます。

注意

浮動小数点の処理に関する IEEE 754 標準では、例外に対するデフォルトのアクションは、トラップなしで続行することが定義されています。fenv.h 内の関数と定義をカスタマイズすることで、浮動小数点エラーの処理方法を修正することができます。
rt_misc.h ヘッダファイルには、エラー関連の関数の詳細が含まれています。
以下の表は、トラップおよびエラー処理関数を示しています。

表 1-8 トラップおよびエラー処理

関数 説明
_sys_exit() 最終的に、ライブラリからのすべての終了処理によって呼び出されます。
errno エラー処理に使用されるスタティック変数です。
__rt_errno_addr() 変数 errno のアドレスを取得するために呼び出されます。
__raise() ランタイム異常を示すシグナルを生成します。
__rt_raise() ランタイム異常を示すシグナルを生成します。
__default_signal_handler() ユーザへのエラーメッセージを表示します。
_ttywrch() コンソールに文字を書き込みます。_ttywrch() のデフォルトの実装はセミホストであるため、セミホスティング呼び出しが使用されます。
__rt_fp_status_addr() この関数は、浮動小数点ステータスワードのアドレスを取得するために呼び出されます。
関連する参考文書
1.6.5 C ライブラリ関数の直接セミホスティング依存関数
1.6.6 C ライブラリ関数の間接セミホスティング依存関数
1.7.1 C ライブラリを使用しないアプリケーションの作成
4.39 _sys_exit()
4.6 errno
4.18 __raise()
4.28 __rt_raise()
4.5 __default_signal_handler()
4.49 _ttywrch()
4.24 __rt_fp_status_addr()
非機密扱いPDF file icon PDF 版ARM DUI0808CJ
Copyright © 2014, 2015 ARM.All rights reserved.