_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 パラメーターには、次のいずれかの値を設定できます。

Value 説明
_OUT_TO_DEFAULT エラー シンクは __app_type によって決まります。
_OUT_TO_STDERR エラー シンクは、標準エラーです。
_OUT_TO_MSGBOX エラー シンクは、メッセージ ボックスです。
_REPORT_ERRMODE 現在の __error_mode 値をレポートします。

一覧に示されている値以外の値が渡された場合、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、_set_error_modeerrnoEINVAL に設定し、-1 を返します。

と共assertに使用すると、_set_error_modeダイアログ ボックスに失敗したステートメントが表示され、[無視] ボタンを選択してプログラムを実行し続けることができます。

必要条件

ルーチンによって返される値 必須ヘッダー
_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.

関連項目

assert マクロ、_assert、_wassert