errno常数

#include <errno.h>

备注

errno 值是常数分配给 errno 在各种错误状态的情况下。

ERRNO.H 包含 errno 值的定义。 但是,并非在 ERRNO.H 提供的所有定义用于 32 位 windows 操作系统。 在某些 ERRNO.H 的值存在保持与操作系统 UNIX 系列的兼容性。

在 32 位 windows 操作系统的 errno 值是的子集 errno 中 XENIX 系统。 因此, errno 值不一定是实际错误代码返回从 windows 操作系统调用的相同。 访问实际操作系统错误代码,使用 _doserrno 变量,包含该值。

下面 errno 值支持:

  • ECHILD
    未给出的过程。

  • EAGAIN
    不处理。 尝试创建新进程失败,因为没有处理槽,或者没有足够的内存,或者最大嵌套级别已到达。

  • E2BIG
    太长的参数列表。

  • EACCES
    权限被拒绝。 文件的权限集不允许指定的访问。 此错误指示尝试访问一个文件 (或者,在某些情况下,一个目录) 将与文件属性不兼容的方法。

    例如,该错误,当尝试从不处于打开状态时的文件读取,打开要编写的现有只读文件,或打开目录而不是文件。 在 MS-DOS 操作系统版本 3.0 下及更高版本中, EACCES 还可以指示锁定的或共享的冲突。

    该错误还可能生成用于写入文件或目录重命名或移除现有目录。

  • EBADF
    文件号错误。 有两种原因:1) 中指定的文件描述符不是有效的值也不引用打开文件。 2) 尝试对进行只读访问或设备编写打开的文件。

  • EDEADLOCK
    资源会发生死锁。 为算术函数的参数不在函数的字段。

  • EDOM
    算术参数。

  • EEXIST
    文件存在。 尝试创建已存在的文件。 例如, _O_CREAT_O_EXCL 标志。 _open 指定调用,但是,名称文件已存在。

  • EILSEQ
    非法字节序列 (例如,在 MBCS 字符串)。

  • EINVAL
    无效参数。 无效值为之一传递给定函数。 例如,对于原点给定的值,在确定文件指针 (传递给 fseek的调用) 是文件的开头之前。

  • EMFILE
    许多打开文件。 没有其他文件描述符不可用,因此,不能打开没有其他文件。

  • ENOENT
    如果没有这样的文件或目录。 使用指定的文件或目录不存在或无法找到。 此消息会发生,只要已指定的文件不存在或路径的元素不指定某个现有目录。

  • ENOEXEC
    exec 格式错误。 尝试执行不可执行文件或具有无效可执行 (pe) 文件格式的文件。

  • ENOMEM
    没有足够的核心。 没有足够的内存为所尝试的运算符可用。 例如,此消息时,会发生内存不足可用于执行子进程时,或者,在 _getcwd 的分配请求调用时无法得到满足。

  • ENOSPC
    在计算机预留的没有空格。 编写没有其他空间不在计算机 (例如,那么,当磁盘已满时)。

  • ERANGE
    太大结果。 为算术函数的参数太大,从而部分或完全有效位丢失中的位数。 此错误在其他功能,也可能作为参数比预期大时 (例如,那么,当对 _getcwd缓冲区 参数比预期长) 时。

  • EXDEV
    跨模式链接。 尝试将文件移动到不同的计算机 (使用 重命名 函数)。

  • STRUNCATE
    字符串复制或串联生成一个被截断的字符串。 请参见 _TRUNCATE

以下值对使用 POSIX 的兼容性支持。 它们是在非 POSIX 系统需要的值。

#define E2BIG [argument list too long]
#define EACCES [permission denied]
#define EADDRINUSE [address in use]
#define EADDRNOTAVAIL [address not available]
#define EAFNOSUPPORT [address family not supported]
#define EAGAIN [resource unavailable try again]
#define EALREADY [connection already in progress]
#define EBADF [bad file descriptor]
#define EBADMSG [bad message]
#define EBUSY [device or resource busy]
#define ECANCELED [operation canceled]
#define ECHILD [no child process]
#define ECONNABORTED [connection aborted]
#define ECONNREFUSED [connection refused]
#define ECONNRESET [connection reset]
#define EDEADLK [resource deadlock would occur]
#define EDESTADDRREQ [destination address required]
#define EDOM [argument out of domain]
#define EEXIST [file exists]
#define EFAULT [bad address]
#define EFBIG [file too large]
#define EHOSTUNREACH [host unreachable]
#define EIDRM [identifier removed]
#define EILSEQ [illegal byte sequence]
#define EINPROGRESS [operation in progress]
#define EINTR [interrupted]
#define EINVAL [invalid argument]
#define EIO [io error]
#define EISCONN [already connected]
#define EISDIR [is a directory]
#define ELOOP [too many synbolic link levels]
#define EMFILE [too many files open]
#define EMLINK [too many links]
#define EMSGSIZE [message size]
#define ENAMETOOLONG [filename too long]
#define ENETDOWN [network down]
#define ENETRESET [network reset]
#define ENETUNREACH [network unreachable]
#define ENFILE [too many files open in system]
#define ENOBUFS [no buffer space]
#define ENODATA [no message available]
#define ENODEV [no such device]
#define ENOENT [no such file or directory]
#define ENOEXEC [executable format error]
#define ENOLCK [no lock available]
#define ENOLINK [no link]
#define ENOMEM [not enough memory]
#define ENOMSG [no message]
#define ENOPROTOOPT [no protocol option]
#define ENOSPC [no space on device]
#define ENOSR [no stream resources]
#define ENOSTR [not a stream]
#define ENOSYS [function not supported]
#define ENOTCONN [not connected]
#define ENOTDIR [not a directory]
#define ENOTEMPTY [directory not empty]
#define ENOTRECOVERABLE [state not recoverable]
#define ENOTSOCK [not a socket]
#define ENOTSUP [not supported]
#define ENOTTY [inappropriate io control operation]
#define ENXIO [no such device or address]
#define EOPNOTSUPP [operation not supported]
#define EOTHER [other]
#define EOVERFLOW [value too large]
#define EOWNERDEAD [owner dead]
#define EPERM [operation not permitted]
#define EPIPE [broken pipe]
#define EPROTO [protocol error]
#define EPROTONOSUPPORT [protocol not supported]
#define EPROTOTYPE [wrong protocol type]
#define ERANGE [result out of range]
#define EROFS [read only file system]
#define ESPIPE [invalid seek]
#define ESRCH [no such process]
#define ETIME [stream timeout]
#define ETIMEDOUT [timed out]
#define ETXTBSY [text file busy]
#define EWOULDBLOCK [operation would block]
#define EXDEV [cross device link]

请参见

参考

全局常数