errno.h man page

Prolog

This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the corresponding Linux manual page for details of Linux behavior), or the interface may not be implemented on Linux.

errno.h — system error numbers

Synopsis

#include <errno.h>

Description

Some of the functionality described on this reference page extends the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2008 defers to the ISO C standard.

The ISO C standard only requires the symbols [EDOM], [EILSEQ], and [ERANGE] to be defined.

The <errno.h> header shall provide a declaration or definition for errno. The symbol errno shall expand to a modifiable lvalue of type int. It is unspecified whether errno is a macro or an identifier declared with external linkage. If a macro definition is suppressed in order to access an actual object, or a program defines an identifier with the name errno, the behavior is undefined.

The <errno.h> header shall define the following macros which shall expand to integer constant expressions with type int, distinct positive values (except as noted below), and which shall be suitable for use in #if preprocessing directives:

E2BIG

Argument list too long.

EACCES

Permission denied.

EADDRINUSE

Address in use.

EADDRNOTAVAIL

Address not available.

EAFNOSUPPORT

Address family not supported.

EAGAIN

Resource unavailable, try again (may be the same value as [EWOULDBLOCK]).

EALREADY

Connection already in progress.

EBADF

Bad file descriptor.

EBADMSG

Bad message.

EBUSY

Device or resource busy.

ECANCELED

Operation canceled.

ECHILD

No child processes.

ECONNABORTED

Connection aborted.

ECONNREFUSED

Connection refused.

ECONNRESET

Connection reset.

EDEADLK

Resource deadlock would occur.

EDESTADDRREQ

Destination address required.

EDOM

Mathematics argument out of domain of function.

EDQUOT

Reserved.

EEXIST

File exists.

EFAULT

Bad address.

EFBIG

File too large.

EHOSTUNREACH

Host is unreachable.

EIDRM

Identifier removed.

EILSEQ

Illegal byte sequence.

EINPROGRESS

Operation in progress.

EINTR

Interrupted function.

EINVAL

Invalid argument.

EIO

I/O error.

EISCONN

Socket is connected.

EISDIR

Is a directory.

ELOOP

Too many levels of symbolic links.

EMFILE

File descriptor value too large.

EMLINK

Too many links.

EMSGSIZE

Message too large.

EMULTIHOP

Reserved.

ENAMETOOLONG

Filename too long.

ENETDOWN

Network is down.

ENETRESET

Connection aborted by network.

ENETUNREACH

Network unreachable.

ENFILE

Too many files open in system.

ENOBUFS

No buffer space available.

ENODATA

No message is available on the STREAM head read queue.

ENODEV

No such device.

ENOENT

No such file or directory.

ENOEXEC

Executable file format error.

ENOLCK

No locks available.

ENOLINK

Reserved.

ENOMEM

Not enough space.

ENOMSG

No message of the desired type.

ENOPROTOOPT

Protocol not available.

ENOSPC

No space left on device.

ENOSR

No STREAM resources.

ENOSTR

Not a STREAM.

ENOSYS

Function not supported.

ENOTCONN

The socket is not connected.

ENOTDIR

Not a directory or a symbolic link to a directory.

ENOTEMPTY

Directory not empty.

ENOTRECOVERABLE

State not recoverable.

ENOTSOCK

Not a socket.

ENOTSUP

Not supported (may be the same value as [EOPNOTSUPP]).

ENOTTY

Inappropriate I/O control operation.

ENXIO

No such device or address.

EOPNOTSUPP

Operation not supported on socket (may be the same value as [ENOTSUP]).

EOVERFLOW

Value too large to be stored in data type.

EOWNERDEAD

Previous owner died.

EPERM

Operation not permitted.

EPIPE

Broken pipe.

EPROTO

Protocol error.

EPROTONOSUPPORT

Protocol not supported.

EPROTOTYPE

Protocol wrong type for socket.

ERANGE

Result too large.

EROFS

Read-only file system.

ESPIPE

Invalid seek.

ESRCH

No such process.

ESTALE

Reserved.

ETIME

Stream ioctl() timeout.

ETIMEDOUT

Connection timed out.

ETXTBSY

Text file busy.

EWOULDBLOCK

Operation would block (may be the same value as [EAGAIN]).

EXDEV

Cross-device link.

The following sections are informative.

Application Usage

Additional error numbers may be defined on conforming systems; see the System Interfaces volume of POSIX.1-2008.

Rationale

None.

Future Directions

None.

See Also

The System Interfaces volume of POSIX.1-2008, Section 2.3, Error Numbers

Referenced By

errno(3p), signal.h(0p).

2013 IEEE/The Open Group POSIX Programmer's Manual