1 EPERM Not super-user Typically this error indicates an attempt to modify a file in some way forbidden except to its owner or the super-user. It is also returned for attempts by ordinary users to do things allowed only to the super- user. 2 ENOENT No such file or directory A file name is specified and the file should exist but doesn't, or one of the directories in a path name does not exist. 3 ESRCH No such process No process can be found corresponding to that specified by PID in the kill or ptrace routine. 4 EINTR Interrupted system call An asynchronous signal (such as interrupt or quit), which the user has elected to catch, occurred during a system service routine. If execution is resumed after processing the signal, it will appear as if the interrupted routine call returned this error condition. 5 EIO I/O error Some physical I/O error has occurred. This error may in some cases 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 which does not exist, or exists beyond the limit of the device. It may also occur when, for example, a tape drive is not on-line or no disk pack is loaded on a drive. 7 E2BIG Arg list too long An argument list longer than ARG_MAX bytes is presented to a member of the exec family of routines. The argument list limit is the sum of the size of the argument list plus the size of the environment's exported shell variables. 8 ENOEXEC Exec format error A request is made to execute a file which, although it has the appropriate permissions, does not start with a valid format [see a.out(4)]. 9 EBADF Bad file number Either a file descriptor refers to no open file, or a read [respectively, write] request is made to a file that is open only for writing (respectively, reading). 10 ECHILD No child processes A wait routine was executed by a process that had no existing or unwaited-for child processes. 11 EAGAIN No more processes For example, the fork routine failed because the system's process table is full or the user is not allowed to create any more processes, or a system call failed because of insufficient memory or swap space. 12 ENOMEM Not enough space During execution of an exec, brk, or sbrk routine, a program asks for more space than the system is able to supply. This is not a temporary condition; the maximum size is a system parameter. The error may also occur if the arrangement of text, data, and stack segments requires too many segmentation registers, or if there is not enough swap space during the fork routine. If this error occurs on a resource associated with Remote File Sharing (RFS), it indicates a memory depletion which may be temporary, dependent on system activity at the time the call was invoked. 13 EACCES Permission denied An attempt was made to access a file in a way forbidden by the protection system. 14 EFAULT Bad address The system encountered a hardware fault in attempting to use an argument of a routine. For example, errno potentially may be set to EFAULT any time a routine that takes a pointer argument is passed an invalid address, if the system can detect the condition. Because systems will differ in their ability to reliably detect a bad address, on some implementations passing a bad address to a routine will result in undefined behavior. 15 ENOTBLK Block device required A non-block file was mentioned where a block device was required (e.g., in a call to the mount routine). 16 EBUSY Device busy An attempt was made to mount a device that was already mounted or an attempt was made to unmount a device on which there is an active file (open file, current directory, mounted-on file, active text segment). It will also occur if an attempt is made to enable accounting when it is already enabled. The device or resource is currently unavailable. 17 EEXIST File exists An existing file was mentioned in an inappropriate context (e.g., call to the link routine). 18 EXDEV Cross-device link A link to a file on another device was attempted. 19 ENODEV No such device An attempt was made to apply an inappropriate operation to a device (e.g., read a write-only device). 20 ENOTDIR Not a directory A non-directory was specified where a directory is required (e.g., in a path prefix or as an argument to the chdir routine). 21 EISDIR Is a directory An attempt was made to write on a directory. 22 EINVAL Invalid argument An invalid argument was specified (e.g., unmounting a non-mounted device), mentioning an undefined signal in a call to the signal or kill routine. 23 ENFILE File table overflow The system file table is full (i.e., SYS_OPEN files are open, and temporarily no more files can be opened). 24 EMFILE Too many open files No process may have more than OPEN_MAX file descriptors open at a time. 25 ENOTTY Not a typewriter A call was made to the ioctl routine specifying a file that is not a special character device. 27 EFBIG File too large The size of a file exceeded the maximum file size, FCHR_MAX [see getrlimit]. 28 ENOSPC No space left on device While writing an ordinary file or creating a directory entry, there is no free space left on the device. In the fcntl routine, the setting or removing of record locks on a file cannot be accomplished because there are no more record entries left on the system. 29 ESPIPE Illegal seek A call to the lseek routine was issued to a pipe. 30 EROFS Read-only file system An attempt to modify a file or directory was made on a device mounted read-only. 31 EMLINK Too many links An attempt to make more than the maximum number of links, LINK_MAX, to a file. 32 EPIPE Broken pipe A write on a pipe 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 Math argument out of domain of func The argument of a function in the math package (3M) is out of the domain of the function. 34 ERANGE Math result not representable The value of a function in the math package (3M) is not representable within machine precision. 35 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 [see msgop(2)]. 36 EIDRM Identifier removed This error is returned to processes that resume execution due to the removal of an identifier from the file system's name space [see msgctl(2), semctl(2), and shmctl(2)]. 37 ECHRNG Channel number out of range 38 EL2NSYNC Level 2 not synchronized 39 EL3HLT Level 3 halted 40 EL3RST Level 3 reset 41 ELNRNG Link number out of range 42 EUNATCH Protocol driver not attached 43 ENOCSI No CSI structure available 44 EL2HLT Level 2 halted 45 EDEADLK Deadlock condition A deadlock situation was detected and avoided. This error pertains to file and record locking. 46 ENOLCK No record locks available There are no more locks available. The system lock table is full [see fcntl(2)]. 47-49 Reserved 58-59 Reserved 60 ENOSTR Device not a stream A putmsg or getmsg system call was attempted on a file descriptor that is not a STREAMS device. 61 ENODATA No data available 62 ETIME Timer expired The timer set for a STREAMS ioctl call has expired. The cause of this error is device specific and could indicate either a hardware or software failure, or perhaps a timeout value that is too short for the specific operation. The status of the ioctl operation is indeterminate. 63 ENOSR Out of stream resources During a STREAMS open, either no STREAMS queues or no STREAMS head data structures were available. This is a temporary condition; one may recover from it if other processes release resources. 64 ENONET Machine is not on the network This error is Remote File Sharing (RFS) specific. It occurs when users try to advertise, unadvertise, mount, or unmount remote resources while the machine has not done the proper startup to connect to the network. 65 ENOPKG Package not installed This error occurs when users attempt to use a system call from a package which has not been installed. 66 EREMOTE Object is remote This error is RFS specific. It occurs when users try to advertise a resource which is not on the local machine, or try to mount/unmount a device (or pathname) that is on a remote machine. 67 ENOLINK Link has been severed This error is RFS specific. It occurs when the link (virtual circuit) connecting to a remote machine is gone. 68 EADV Advertise error This error is RFS specific. It occurs when users try to advertise a resource which has been advertised already, or try to stop RFS while there are resources still advertised, or try to force unmount a resource when it is still advertised. 69 ESRMNT Srmount error This error is RFS specific. It occurs when an attempt is made to stop RFS while resources are still mounted by remote machines, or when a resource is readvertised with a client list that does not include a remote machine that currently has the resource mounted. 70 ECOMM Communication error on send This error is RFS specific. It occurs when the current process is waiting for a message from a remote machine, and the virtual circuit fails. 71 EPROTO Protocol error Some protocol error occurred. This error is device specific, but is generally not related to a hardware failure. 74 EMULTIHOP Multihop attempted This error is RFS specific. It occurs when users try to access remote resources which are not directly accessible. 76 EDOTDOT Error 76 This error is RFS specific. A way for the server to tell the client that a process has transferred back from mount point. 77 EBADMSG Not a data message During a read, getmsg, or ioctl I_RECVFD system call to a STREAMS device, something has come to the head of the queue that can't be processed. That something depends on the system call: read: control information or a passed file descriptor. getmsg: passed file descriptor. ioctl: control or data information. 78 ENAMETOOLONG File name too long The length of the path argument exceeds PATH_MAX, or the length of a path component exceeds NAME_MAX while _POSIX_NO_TRUNC is in effect; see limits(4). 79 EOVERFLOW Value too large for defined data type. 80 ENOTUNIQ Name not unique on network Given log name not unique. 81 EBADFD File descriptor in bad state Either a file descriptor refers to no open file or a read request was made to a file that is open only for writing. 82 EREMCHG Remote address changed 83 ELIBACC Cannot access a needed shared library Trying to exec an a.out that requires a static shared library and the static shared library doesn't exist or the user doesn't have permission to use it. 84 ELIBBAD Accessing a corrupted shared library Trying to exec an a.out that requires a static shared library (to be linked in) and exec could not load the static shared library. The static shared library is probably corrupted. 85 ELIBSCN .lib section in a.out corrupted Trying to exec an a.out that requires a static shared library (to be linked in) and there was erroneous data in the .lib section of the a.out. The .lib section tells exec what static shared libraries are needed. The a.out is probably corrupted. 86 ELIBMAX Attempting to link in more shared libraries than system limit Trying to exec an a.out that requires more static shared libraries than is allowed on the current configuration of the system. See the System Administrator's Guide. 87 ELIBEXEC Cannot exec a shared library directly Attempting to exec a shared library directly. 88 EILSEQ Error 88 Illegal byte sequence. Handle multiple characters as a single character. 89 ENOSYS Operation not applicable 90 ELOOP Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS 91 ESTART Error 91 Interrupted system call should be restarted. 92 ESTRPIPE Error 92 Streams pipe error (not externally visible). 93 ENOTEMPTY Directory not empty 94 EUSERS Too many users Too many users. 95 ENOTSOCK Socket operation on non-socket Self-explanatory. 96 EDESTADDRREQ Destination address required A required address was omitted from an operation on a transport endpoint. Destination address required. 97 EMSGSIZE Message too long A message sent on a transport provider was larger than the internal message buffer or some other network limit. 98 EPROTOTYPE Protocol wrong type for socket A protocol was specified that does not support the semantics of the socket type requested. 99 ENOPROTOOPT Protocol not available A bad option or level was specified when getting or setting options for a protocol. 120 EPROTONOSUPPORT Protocol not supported The protocol has not been configured into the system or no implementation for it exists. 121 ESOCKTNOSUPPORT Socket type not supported The support for the socket type has not been configured into the system or no implementation for it exists. 122 EOPNOTSUPP Operation not supported on transport endpoint For example, trying to accept a connection on a datagram transport endpoint. 123 EPFNOSUPPORT Protocol family not supported The protocol family has not been configured into the system or no implementation for it exists. Used for the Internet protocols. 124 EAFNOSUPPORT Address family not supported by protocol family An address incompatible with the requested protocol was used. 125 EADDRINUSE Address already in use User attempted to use an address already in use, and the protocol does not allow this. 126 EADDRNOTAVAIL Cannot assign requested address Results from an attempt to create a transport endpoint with an address not on the current machine. 127 ENETDOWN Network is down Operation encountered a dead network. 128 ENETUNREACH Network is unreachable Operation was attempted to an unreachable network. 129 ENETRESET Network dropped connection because of reset The host you were connected to crashed and rebooted. 130 ECONNABORTED Software caused connection abort A connection abort was caused internal to your host machine. 131 ECONNRESET Connection reset by peer A connection was forcibly closed by a peer. This normally results from a loss of the connection on the remote host due to a timeout or a reboot. 132 ENOBUFS No buffer space available An operation on a transport endpoint or pipe was not performed because the system lacked sufficient buffer space or because a queue was full. 133 EISCONN Transport endpoint is already connected A connect request was made on an already connected transport endpoint; or, a sendto or sendmsg request on a connected transport endpoint specified a destination when already connected. 134 ENOTCONN Transport endpoint is not connected A request to send or receive data was disallowed because the transport endpoint is not connected and (when sending a datagram) no address was supplied. 143 ESHUTDOWN Cannot send after transport endpoint shutdown A request to send data was disallowed because the transport endpoint has already been shut down. 144 ETOOMANYREFS Too many references: cannot splice 145 ETIMEDOUT Connection timed out A connect or send request failed because the connected party did not properly respond after a period of time. (The timeout period is dependent on the communication protocol.) 146 ECONNREFUSED Connection refused No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the remote host. 147 EHOSTDOWN Host is down A transport provider operation failed because the destination host was down. 148 EHOSTUNREACH No route to host A transport provider operation was attempted to an unreachable host. 149 EALREADY Operation already in progress An operation was attempted on a non-blocking object that already had an operation in progress. 150 EINPROGRESS Operation now in progress An operation that takes a long time to complete (such as a connect) was attempted on a non-blocking object. 151 ESTALE Stale NFS file handle The signals currently defined in are as follows: Name Value Default Event _________________________________________________________________________ SIGHUP 1 Exit Hangup [see termio(7)] SIGINT 2 Exit Interrupt [see termio(7)] SIGQUIT 3 Core Quit [see termio(7)] SIGILL 4 Core Illegal Instruction SIGTRAP 5 Core Trace/Breakpoint Trap SIGIOT 6 Core Abort SIGEMT 7 Core Emulation Trap SIGFPE 8 Core Arithmetic Exception SIGKILL 9 Exit Killed SIGBUS 10 Core Bus Error SIGSEGV 11 Core Segmentation Fault SIGSYS 12 Core Bad System Call SIGPIPE 13 Exit Broken Pipe SIGALRM 14 Exit Alarm Clock SIGTERM 15 Exit Terminated SIGUSR1 16 Exit User Signal 1 SIGUSR2 17 Exit User Signal 2 SIGCHLD 18 Ignore Child Status (change alias POSIX) SIGPWR 19 Ignore Power Fail/Restart SIGWINCH 20 Ignore Window Size Change SIGURG 21 Ignore Urgent Socket Condition SIGIO 22 Ignore Socket I/O Possible (SIGPOLL alias) SIGSTOP 23 Stop Stopped (signal) SIGTSTP 24 Stop Stopped (user) [see termio(7)] SIGCONT 25 Ignore Continued SIGTTIN 26 Stop Stopped (tty input) [see termio(7)] SIGTTOU 27 Stop Stopped (tty output) [see termio(7)] SIGVTALRM 28 Exit Virtual Timer Expired SIGPROF 29 Exit Profiling Timer Expired SIGXCPU 30 Core CPU time limit exceeded [see getrlimit(2)] SIGXFSZ 31 Core File size limit exceeded [see getrlimit(2)] Using the signal, sigset or sigaction system call, a process may specify one of three dispositions for a signal: take the default action for the signal, ignore the signal, or catch the signal. Default Action: SIG_DFL A disposition of SIG_DFL specifies the default action. The default action for each signal is listed in the table above and is selected from the following: Exit When it gets the signal, the receiving process is to be terminated with all the consequences outlined in exit(2). Core When it gets the signal, the receiving process is to be terminated with all the consequences outlined in exit(2). In addition, a ``core image'' of the process is constructed in the current working directory. Stop When it gets the signal, the receiving process is to stop. Ignore When it gets the signal, the receiving process is to ignore it. This is identical to setting the disposition to SIG_IGN. Ignore Signal: SIG_IGN A disposition of SIG_IGN specifies that the signal is to be ignored. Catch Signal: function address A disposition that is a function address specifies that, when it gets the signal, the receiving process is to execute the signal handler at the specified address. Normally, the signal handler is passed the signal number as its only argument; if the disposition was set with the sigaction function however, additional arguments may be requested [see sigaction(2)]. When the signal handler returns, the receiving process resumes execution at the point it was interrupted, unless the signal handler makes other arrangements. If an invalid function address is specified, results are undefined. If the disposition has been set with the sigset or sigaction function, the signal is automatically blocked by the system while the signal catcher is executing. If a longjmp [see setjmp(3C)] is used to leave the signal catcher, then the signal must be explicitly unblocked by the user [see signal(2) and sigprocmask(2)]. If execution of the signal handler interrupts a blocked system call, the handler is executed and the interrupted system call returns a -1 to the calling process with errno set to EINTR. However, if the SA_RESTART flag is set the system call will be transparently restarted. NOTES The dispositions of the SIGKILL and SIGSTOP signals cannot be altered from their default values. The system generates an error if this is attempted. The SIGKILL and SIGSTOP signals cannot be blocked. The system silently enforces this restriction. Whenever a process receives a SIGSTOP, SIGTSTP, SIGTTIN, or SIGTTOU signal, regardless of its disposition, any pending SIGCONT signal are discarded. Whenever a process receives a SIGCONT signal, regardless of its disposition, any pending SIGSTOP, SIGTSTP, SIGTTIN, and SIGTTOU signals is discarded. In addition, if the process was stopped, it is continued. SIGPOLL is issued when a file descriptor corresponding to a STREAMS [see intro(2)] file has a ``selectable'' event pending. A process must specifically request that this signal be sent using the I_SETSIG ioctl call. Otherwise, the process will never receive SIGPOLL. If the disposition of the SIGCHLD signal has been set with signal or sigset, or with sigaction and the SA_NOCLDSTOP flag has been specified, it will only be sent to the calling process when its children exit; otherwise, it will also be sent when the calling process's children are stopped or continued due to job control. The name SIGCLD is also defined in this header file and identifies the same signal as SIGCHLD. SIGCLD is provided for backward compatibility, new applications should use SIGCHLD. The disposition of signals that are inherited as SIG_IGN should not be changed. SEE ALSO exit(2), getrlimit(2), intro(2), kill(2), pause(2), sigaction(2), sigaltstack(2), signal(2), sigprocmask(2), sigsend(2), sigsuspend(2), wait(2), sigsetops(3C), siginfo(5), ucontext(5)