_set_error_mode
__error_mode
を変更し、プログラム終了の可能性があるエラーの場合に C ランタイムがエラー メッセージを書き込む、既定以外の位置を決定します。
重要
この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。
構文
int _set_error_mode(
int mode_val
);
パラメーター
mode_val
エラー メッセージの書き込み先。
戻り値
エラーが発生した場合、以前の設定または-1 を返します。
解説
__error_mode
の値を設定することにより、エラー出力シンクを制御します。 たとえば、標準エラーを出力先に指定することも、MessageBox
API を使用することもできます。
mode_val
パラメーターには、次のいずれかの値を設定できます。
値 | 説明 |
---|---|
_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.