Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
Error Variables
◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
Variable: _doserrno, errno, sys_errlist, sys_nerr
Include: <stdlib.h>, <errno.h>
Syntax: int _doserrno;
int errno;
char * sys_errlist[ ];
int sys_nerr;
The errno, sys_errlist, and sys_nerr variables are used by the
perror function to print error information, and are declared in
the include file STDLIB.H. When an error occurs in a system-level
call, the errno variable is set to an integer value to reflect the
type of error.
The perror function uses the errno value to look up the
corresponding error message in the sys_errlist table. The value
of the sys_nerr variable is defined as the number of elements in
the sys_errlist array.
The following errno values are supported:
E2BIG ECHILD EINVAL ENOMEM
EACCES EDEADLOCK EMFILE ENOSPC
EAGAIN EDOM ENOENT ERANGE
EBADF EEXIST ENOEXEC EXDEV
The errno values on DOS and OS/2 are a subset of the values for
errno on XENIX systems. Therefore, the value assigned to errno in
case of error does not necessarily correspond to the actual error
code returned by a DOS or OS/2 system call. Instead, the actual
DOS and OS/2 error codes are mapped onto the perror values.
Use the _doserrno variable if you want to access the actual
operating-system error code. When an error occurs in a system
call, the _doserrno variable is assigned the actual error code
returned by the corresponding operating-system call.
The value of errno reflects the error value for the last call that
set errno. The errno value is not automatically cleared by later
successful calls. Thus, to obtain accurate results, you should
test for errors and print error messages, if desired, immediately
after a call.
In general, you should use _doserrno only for error detection in
operations involving input and output, since the errno values for
input and output errors have operating-system error-code
equivalents. Not all of the error values available for errno have
exact operating-system error-code equivalents, and some may have
no equivalents, causing the value of _doserrno to be undefined.