errno(2) System Calls Manual errno(2)
Name
errno - introduction error numbers
Syntax
#include <errno.h>
Description
The external variable is set when an error occurs in a system call. You can use the value stored in errno to obtain a more detailed
description of the error than is given in the system call's return value. The variable is not cleared on successful system calls, so you
should check its value only when an error is reported.
Return Values
Most system calls have one or more return values. An error condition is indicated by an otherwise impossible return value. This value is
almost always -1. All return codes and values from system call are of type int, unless otherwise noted.
When an error occurs, most calls store one of the following values, as defined in <errno.h>, in the errno variable:
0 Unused.
1 EPERM Not owner
This error indicates an attempt to modify a file in some way forbidden except to its owner or the superuser. It is also returned for
attempts by ordinary users to do things allowed only to the superuser.
2 ENOENT No such file or directory
This error occurs when a file name is specified and the file should exist but does not, or when one of the directories in a pathname
does not exist.
3 ESRCH No such process
The process whose number was given to and does not exist or is already dead.
4 EINTR Interrupted system call
An asynchronous signal (such as interrupt or quit) that the program catches occurred during a system call. If execution resumes after
the asynchronous signal is processed, it will appear as if the interrupted system call returned this error condition.
5 EIO I/O error
Some physical I/O error occurred during a or This error may occur on a call following the one to which it actually applies.
6 ENXIO No such device or address
I/O on a special file refers to a subdevice that does not exist or to an area beyond the limits of the device. This error might also
occur when an illegal tape drive unit number is selected or a disk pack is not loaded on a drive.
7 E2BIG Arg list too long
An argument list longer than 10240 bytes is presented to
8 ENOEXEC Exec format error
A request is made to execute a file that does not start with a valid magic number, although it has the appropriate permissions. For
further information, see
9 EBADF Bad file number
Either a file descriptor refers to no open file or a read request is made for a file that is open only for writing. Likewise, a write
request made to a file open only for reading causes this error.
10 ECHILD No children
The program issued a call and the process has no active or unwaited-for children.
11 EAGAIN No more processes
In a fork, the system's process table is full or the user is not allowed to create any more processes.
12 ENOMEM Not enough core
During an or a program asks for more core or swap space than the system is able to supply. A lack of swap space is normally a tempo-
rary condition. However, a lack of core is not a temporary condition; the maximum size of the text, data, and stack segments is a
system parameter.
13 EACCES Permission denied
The call attempts to access a file in some way forbidden by the protection system.
14 EFAULT Bad address
The system encountered a hardware fault in attempting to access the arguments of a system call.
15 ENOTBLK Block device required
The call specifies a plain file where a block device is required.
16 EBUSY Mount device busy
The call attempts to mount a device that was already mounted or to unmount a device on which there was an active file directory, an
open file, current directory, mounted-on file, or active text segment. Or, the call attempts to modify a partition table incorrectly.
See the restrictions in
17 EEXIST File exists
An existing file is mentioned in an inappropriate context.
18 EXDEV Cross-device link
The call attempts to form a hard link to a file on another device.
19 ENODEV No such device
The call attempts to perform an invalid operation on a device, such as write to a read-only device.
20 ENOTDIR Not a directory
A file that is not a directory is specified where a directory is required, for example, in a pathname or as an argument to
21 EISDIR Is a directory
The call attempts to write on a directory.
22 EINVAL Invalid argument
An invalid argument is specified. For example, the call might specify dismounting a device that is not mounted or reading or writing
a file for which has generated a negative pointer. This error is also set by math functions, as described in the reference page.
23 ENFILE File table overflow
The system's table of open files is full, and temporarily no more calls can be processed.
24 EMFILE Too many open files
The process has opened too many files. The customary configuration limit is 64 files per process.
25 ENOTTY Not a typewriter
The file named in an call is not a terminal or one of the other devices to which the call applies.
26 ETXTBSY Text file busy
The call attempts to execute a pure-procedure program that is currently open for writing or reading. Or, the call attempts to open
for writing a pure-procedure program that is being executed.
27 EFBIG File too large
The size of a file exceeds the maximum (about 1.0E9 bytes).
28 ENOSPC No space left on device
A device runs out of space during a write to an ordinary file.
29 ESPIPE Illegal seek
An call specifies a pipe or other device that does not support.
30 EROFS Restricted operation on a file system
The call attempts to access a file or directory on a mounted file system when that permission has been revoked. For example, the call
attempts to write a file on a file system mounted read only.
31 EMLINK Too many links
The call attempts to make more than {LINK_MAX} hard links to a file.
32 EPIPE Broken pipe
The call attempts to write on a pipe or socket for which there is no process to read the data. This condition normally generates a
signal; the error is returned if the signal is ignored.
33 EDOM Argument too large
The argument of a function in the math package (which is described in the ULTRIX Reference Pages, Section 3: Subroutines ) is out of
the domain of the function.
34 ERANGE Result too large
The value of a function in the math package (which is described in the ULTRIX Reference Pages, Section 3: Subroutines ) is unrepre-
sentable within machine precision.
35 EWOULDBLOCK Operation would block
The call attempts an operation that would cause a process to block on an object in nonblocking mode. For further information, see
36 EINPROGRESS Operation now in progress
The call is performing an operation that takes a long time to complete, such as a call, on a nonblocking object. For further informa-
tion, see
37 EALREADY Operation already in progress
The call attempts an operation on a nonblocking object that already has an operation in progress.
38 ENOTSOCK Socket operation on non-socket
The call attempts to perform a socket-specific operation on an entity that is not a socket.
39 EDESTADDRREQ Destination address required
A required address is omitted from an operation on a socket.
40 EMSGSIZE Message too long
A message sent on a socket is larger than the internal message buffer.
41 EPROTOTYPE Protocol wrong type for socket
A protocol is specified that does not support the semantics of the socket type requested. For example, you cannot use the ARPA Inter-
net UDP protocol with type SOCK_STREAM.
42 ENOPROTOOPT Protocol not available
A bad option was specified in a or call.
43 EPROTONOSUPPORT Protocol not supported
The protocol has not been configured into the system or an implementation for it does not exist.
44 ESOCKTNOSUPPORT Socket type not supported
The support for the socket type has not been configured into the system or an implementation for it does not exist.
45 EOPNOTSUPP Error-operation not supported
The call attempts an unsupported operation, such as trying to accept a connection on a datagram socket.
46 EPFNOSUPPORT Protocol family not supported
The protocol family has not been configured into the system or an implementation for it does not exist.
47 EAFNOSUPPORT Address family not supported by protocol family
An address incompatible with the requested protocol is specified. For example, you cannot use PUP Internet addresses with ARPA Inter-
net protocols.
48 EADDRINUSE Address already in use
The call attempts to use an address that is already in use. Each address can be used only once.
49 EADDRNOTAVAIL Cannot assign requested address
The call attempts to create a socket with an address not on this machine.
50 ENETDOWN Network is down
A socket operation encountered a network that is not operating.
51 ENETUNREACH Network is unreachable
A socket operation attempts to reach an unreachable network.
52 ENETRESET Network dropped connection on reset
The host to which the program was connected to crashed and rebooted.
53 ECONNABORTED Software caused connection abort
A connection abort has occurred internal to your host machine.
54 ECONNRESET Connection reset by peer
A connection has been forcibly closed by a peer. This error usually results from the peer executing a call.
55 ENOBUFS No buffer space available
The system lacks sufficient buffer space to perform an operation on a socket or pipe.
56 EISCONN Socket is already connected
A request names an already connected socket, or a or request on a connected socket specifies a destination other than the connected
party.
57 ENOTCONN Socket is not connected
A request to send or receive data could not complete because the socket is not connected.
58 ESHUTDOWN Cannot send after socket shutdown
A request to send data could not complete because the socket has already been shut down with a previous call.
59 ETOOMANYREFS Too many references: cannot splice
60 ETIMEDOUT Connection timed out
A request failed because the connected party did not properly respond after a period of time. (The timeout period is dependent on the
communication protocol.) For example, this error occurs when an NFS file system is mounted with the ``soft,'' option and the server
is not responding to file operation requests.
61 ECONNREFUSED Connection refused
No connection could be made because the target machine actively refused it. This error usually results from trying to connect to a
service that is inactive on the remote host.
62 ELOOP Too many levels of symbolic links
A pathname lookup involves more than eight symbolic links.
63 ENAMETOOLONG File name too long
A component of a path name exceeds 255 characters, or an entire path name exceeds 1023 characters.
64 EHOSTDOWN Host is down
A socket operation has failed because the destination host is down.
65 EHOSTUNREACH No route to host
A socket operation attempts to reach an unreachable host.
66 ENOTEMPTY Directory not empty
A directory with entries other than dot (.) and dot-dot (..) is specified in a or call.
67 EPROCLIM Too many processes
Creating the process would cause the user to exceed the number of user processes that are available. The maxuprc option in the con-
figuration file controls this limit.
68 EUSERS Too many users
A login process would exceed the maximum allowable login processes for which the system is licensed.
69 EDQUOT Disk quota exceeded
A to an ordinary file, the creation of a directory or symbolic link, or the creation of a directory entry has failed because the
user's quota of disk blocks is exhausted. Or, the allocation of an inode for a newly created file has failed because the user's quota
of inodes is exhausted.
70 ESTALE Stale NFS file handle
Information used by the operating system to identify a file in an NFS file system that is no longer valid. This error code results
from operating on a remote file that no longer exists on the server or resides in a file system that has been moved to a different
device on the server.
71 EREMOTE Too many levels of remote in path
A remote NFS client has requested an operation on a file that is remote to the server as well. An attempt has been made to mount an
NFS remote file system that is not local to the specified server. This error code cannot occur except in response to a failed call.
72 ENOMSG No message of desired type
An attempt was made to receive a message of a type that does not exist on the specified message queue. For further information, see
73 EIDRM Identifier removed
In semaphores, shared memory, or message queues, the caller tried to access the identifier after it had been removed from the system.
74 EALIGN Alignment error
Alignment error of some type has occurred, for example, cluster, page, or block.
75 ENOLCK No locks available
A file locking request could not be fulfilled because a system limit on the number of active locks would have been exceeded.
76 ENOSYS Function not implemented
The requested function is not available in ULTRIX. Included for POSIX compatibility only.
See Also
errno(2)