This documentation is archived and is not being maintained.


Modifies __error_mode to determine a non-default location where the C run time writes an error message for an error that will possibly end the program.

int _set_error_mode(
   int modeval 



Destination of error messages.

Returns the old setting or -1 if an error occurs.

Controls the error output sink by setting the value of __error_mode. For example, you can direct output to standard error or use the MessageBox API.

The modeval parameter can be set to one of the following.

Parameter Description


Error sink is determined by __app_type.


Error sink is a standard error.


Error sink is a message box.


Report the current __error_mode value.

If a value other than those listed above is passed in, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, _set_error_mode sets errno to EINVAL and returns -1.

When used with an assert, _set_error_mode displays the failed statement in the dialog box and give you the option of clicking Ignore, which allows you to continue executing the program.

Routine Required header Compatibility



ANSI, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

// crt_set_error_mode.c
// compile with: /c
#include <stdlib.h>
#include <assert.h>

int main()

Sample Output

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.