Microsoft KB Archive/47692

= Errno values are considered valid or invalid under MS-DOS and Windows NT =

Article ID: 47692

Article Last Modified on 9/1/2005

-

APPLIES TO

 The C Run-Time (CRT), when used with:  Microsoft Visual C++ 1.0 Professional Edition

 Microsoft Visual C++ 1.5 Professional Edition

 Microsoft Visual C++ 1.0 Professional Edition

 Microsoft Visual C++ 2.0 Professional Edition</li></ul>

 Microsoft Visual C++ 2.1</li></ul>

 Microsoft Visual C++ 4.0 Standard Edition</li></ul>

 Microsoft Visual C++ 5.0 Standard Edition</li></ul>

 Microsoft Visual C++ 6.0 Service Pack 5</li></ul> </li></ul>

-

<div class="notice_section">

This article was previously published under Q47692

<div class="notice_section">

<div class="summary_section">

SUMMARY
When an error occurs in some library routines, the errno variable is set to a value that can be used to indicate the nature of the error. These error codes are defined in the file ERRNO.H. The codes were originally set up for use with UNIX to conform to errors occurring under that operating system. Because of this, and the differences between the various operating systems, many of the codes have no relevance to the MS-DOS and Windows NT environments.

To maintain compatibility with UNIX and XENIX, all the codes, whether meaningful or not, are defined in ERRNO.H. However, in the description of the global variable errno, the CRT documentation included with each of the above products lists only those codes (and their meanings) applicable to the corresponding operating system, either MS-DOS or Windows NT. To output the associated the error messages of these codes, use the perror function.

If a returned errno value is not one of the listed codes, it can be assumed that the error code was generated incorrectly and is not indicative of the true problem. The documentation for the specific function used denotes which errno values, if any, may be set by an error in that function. The following is a listing of all the errno values defined in ERRNO.H along with brief descriptions of their meanings. Only the values marked with an asterisk (*) are considered valid under MS-DOS. Those marked with a plus sign (+) are considered valid under Windows NT.

For more information on the values not marked with an asterisk or a plus sign, see a UNIX or XENIX system manual. <pre class="fixed_text">Value      Define       Description -      --       ---

EPERM        1          Not owner ENOENT       2        *+No such file or directory ESRCH        3          No such process EINTR        4          Interrupted system call EIO          5          I/O error ENXIO        6          No such device or address E2BIG        7        *+Argument list too long ENOEXEC      8        *+Exec format error EBADF        9        *+Bad file number ECHILD      10         +No spawned processes EAGAIN      11         +No more processes; not enough memory; maximum nesting level reached ENOMEM      12        *+Not enough memory EACCES      13        *+Permission denied EFAULT      14          Bad address ENOTBLK     15          Block device required EBUSY       16          Mount device busy EEXIST      17        *+File exists EXDEV       18        *+Cross-device link ENODEV      19          No such device ENOTDIR     20          Not a directory EISDIR      21          Is a directory EINVAL      22        *+Invalid argument ENFILE      23          File table overflow EMFILE      24        *+Too many open files ENOTTY      25          Not a teletype ETXTBSY     26          Text file busy EFBIG       27          File too large ENOSPC      28        *+No space left on device ESPIPE      29          Illegal seek EROFS       30          Read-only file system EMLINK      31          Too many links EPIPE       32          Broken pipe EDOM        33        *+Math argument ERANGE      34        *+Result too large EUCLEAN     35          File system needs cleaning EDEADLK     36         +Resource deadlock would occur EDEADLOCK   36         *Resource deadlock would occur ENAMETOOLONG 38 ENOLCK      39 ENOSYS      40 ENOTEMPTY   41 EILSEQ      42

+ Used under Windows NT
 * Used under both MS-DOS

Note With Visual C++ 32-bit Edition, EDEADLK is the preferred manifest constant for &quot;resource deadlock.&quot; However, EDEADLOCK is supported for compatibility with older MS-C versions.

For more information on errno and its possible values, please consult the Visual C++ Book Online.

Keywords: kbhowto kbinfo KB47692

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.