_set_error_mode
更新 : 2007 年 11 月
__error_mode を変更し、プログラムを停止する可能性があるエラーのエラー メッセージを C ランタイムが書き込む既定以外の場所を指定します。
int _set_error_mode(
int modeval
);
パラメータ
- modeval
エラー メッセージの出力先。
戻り値
以前の設定が返されます。エラーが発生した場合は、-1 を返します。
解説
__error_mode の値を設定することによって、エラー出力シンクを制御します。たとえば、出力先として、標準エラーへの直接出力や、MessageBox API の使用を指定できます。
modeval パラメータは、次のいずれかの値に設定できます。
引数 |
説明 |
---|---|
_OUT_TO_DEFAULT |
エラー シンクを __app_type で指定します。 |
_OUT_TO_STDERR |
エラー シンクを標準エラー出力にします。 |
_OUT_TO_MSGBOX |
エラー シンクをメッセージ ボックスにします。 |
_REPORT_ERRMODE |
現在の __error_mode 値を報告します。 |
上記以外の値が渡された場合は、「パラメータの検証」に説明されているように、無効なパラメータ ハンドラが呼び出されます。実行の継続が許可された場合、 _set_error_mode は errno を EINVAL に設定し、-1 を返します。
assert と一緒に使用すると、_set_error_mode は失敗したステートメントをダイアログ ボックスに表示します。このダイアログ ボックスの [Ignore] をクリックすると、プログラムの実行を続行できます。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_set_error_mode |
<stdlib.h> |
使用例
// crt_set_error_mode.c
// compile with: /c
#include <stdlib.h>
#include <assert.h>
int main()
{
_set_error_mode(_OUT_TO_STDERR);
assert(2+2==5);
}
Assertion failed: 2+2==5, file crt_set_error_mode.c, line 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.