_set_error_mode
修改 __error_mode 判斷 C 執行階段會將可能會關閉程式的錯誤寫入錯誤訊息的非預設的位置。
重要
這個應用程式開發介面不能用於 Windows 執行階段 中執行的應用程式。如需詳細資訊,請參閱 /ZW 不支援 CRT 函式。
int _set_error_mode(
int modeval
);
參數
- modeval
錯誤訊息的目的地。
傳回值
如果發生錯誤,則傳回舊設定或 -1。
備註
藉由設定 __error_mode的值控制錯誤輸出接收。 例如,您可以將輸出導向至標準錯誤或使用 MessageBox 應用程式開發介面。
這個 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);
}