reactos/sdk/lib/crt/misc/amsg.c
Timo Kreuzer 296e07b94d [CRT] Fix some data exports
* Fix initialization of _commode. In msvcrt it is allocated from .bss, i.e. initialized with 0.
* _fileinfo is initialized with -1
* _aexit_rtn is a pointer, not a function
* Fix _sys_nerr
2021-08-04 02:03:07 +02:00

53 lines
1.6 KiB
C

/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/sdk/crt/misc/amsg.c
* PURPOSE: Print runtime error messages
* PROGRAMER: Ariadne
* UPDATE HISTORY:
* 28/12/98: Created
*/
#include <precomp.h>
static char *__rt_err_msg[] =
{
"stack overflow", /* _RT_STACK */
"null pointer assignment", /* _RT_NULLPTR */
"floating point not loaded", /* _RT_FLOAT */
"integer divide by 0", /* _RT_INTDIV */
"not enough space for arguments", /* _RT_SPACEARG */
"not enough space for environment", /* _RT_SPACEENV */
"abnormal program termination", /* _RT_ABORT */
"not enough space for thread data", /* _RT_THREAD */
"unexpected multithread lock error", /* _RT_LOCK */
"unexpected heap error", /* _RT_HEAP */
"unable to open console device", /* _RT_OPENCON */
"non-continuable exception", /* _RT_NONCONT */
"invalid exception disposition", /* _RT_INVALDISP */
"not enough space for _onexit/atexit table", /* _RT_ONEXIT */
"pure virtual function call", /* _RT_PUREVIRT */
"not enough space for stdio initialization", /* _RT_STDIOINIT */
"not enough space for lowio initialization", /* _RT_LOWIOINIT */
};
/*
* @implemented
*/
typedef void (*aexit_t)(int);
aexit_t _aexit_rtn = _exit;
/*
* @implemented
*/
void _amsg_exit(int errnum)
{
if ((errnum >=0) && (errnum < sizeof(__rt_err_msg)/sizeof(__rt_err_msg[0])))
fprintf(stderr, "runtime error - %s\n", __rt_err_msg[errnum]);
else
fprintf(stderr, "runtime error - %d\n", errnum);
_exit(-1);
}