HPUX errno[2]

errno in anderen Kapiteln des hpux Handbuch:
errno.3c
errno(2) errno(2)
NAME
errno - error indicator for function calls
SYNOPSIS
#include <errno.h>
extern int errno;
DESCRIPTION
Many functions in the HP-UX operating system indicate an error
condition by returning an otherwise out-of-range value (usually -1).
Most of these functions set the external variable errno to a non-zero
code value that more specifically identifies the particular error
condition that was encountered.
All errors detected and the corresponding error code values stored in
errno are documented in the ERRORS section on manual pages for those
functions that set it.
The value of errno is zero immediately after a successful call to any
of the functions described by exec(2) and ptrace(2), but it is never
set to zero by any other HP-UX function. Functions for which the use
of errno is not described may nevertheless change its value to a non-
zero value.
Since errno is not cleared on successful function calls, its value
should be checked or used only when an error has been indicated and
when the function's ERRORS section documents the error codes.
Applications should not attempt to take the address of errno, because
it may be converted to a macro in a future release.
The following is a complete list of the error codes. The numeric
values can be found in <errno.h> but they should not be used in an
application program because they can vary from system to system.
E2BIG Arg list too long. An argument and or environment list
longer than maximum supported size is presented to a
member of the exec() family. Other possibilities
include: message size or number of semaphores exceeds
system limit (msgop, semop), or too many privileged
groups have been set up (setprivgrp).
EACCES Permission denied. An attempt was made to access a
file or IPC object in a way forbidden by the protection
system.
EADDRINUSE Address already in use. Only one usage of each address
is normally permitted.
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
EADDRNOTAVAIL Cannot assign requested address. Normally results from
an attempt to create a socket with an address not on
this machine.
EAFNOSUPPORT Address family not supported by protocol family. An
address incompatible with the requested protocol was
used. For example, you should not necessarily expect
to be able to use PUP Internet addresses with ARPA
Internet protocols.
EAGAIN No more processes. A fork() failed because the
system's process table is full or the user is not
allowed to create any more processes, or a semop() or
msgop() call would have to block.
EALREADY Operation already in progress. An operation was
attempted on a non-blocking object which already had an
operation in progress.
EBADF Bad file number. Either a file descriptor refers to no
open file, a read (respectively write) request is made
to a file which is open only for writing (respectively
reading), or the file descriptor is not in the legal
range of file descriptors.
EBUSY Device or resource busy. An attempt to mount a device
that was already mounted or an attempt was made to
dismount 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, such
as when a non-shareable device file is in use.
ECHILD No child processes. A wait() was executed by a process
that had no existing or unwaited-for child processes.
ECONNABORTED Software caused connection abort. A connection abort
was caused internal to your host machine.
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 foreign host.
ECONNRESET Connection reset by peer. A connection was forcibly
closed by a peer. This normally results from the peer
executing a shutdown() call (see shutdown(2)).
EDEADLK Resource deadlock would occur. A process which has
locked a system resource would have been put to sleep
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
while attempting to access another process' locked
resource.
EDESTADDRREQ Destination address required. A required address was
omitted from an operation on a socket.
EDOM Math argument. The argument of a function in the math
package (3M) is out of the domain of the function.
EEXIST File exists. An existing file was mentioned in an
inappropriate context; e.g., link().
EFAULT Bad address. The system encountered a hardware fault
in attempting to use an argument of a system call; can
also result from passing the wrong number of parameters
to a system call. The reliable detection of this error
is implementation dependent.
EFBIG File too large. The size of a file exceeded the
maximum file size (for the file system) or ULIMIT was
exceeded (see ulimit(2)), or a bad semaphore number in
a semop() call (see semop(2)).
EHOSTDOWN Host is down. A socket operation encountered a dead
host. Networking activity on the local host has not
been initiated.
EHOSTUNREACH No route to host. A socket operation was attempted to
an unreachable host.
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)).
EILSEQ Illegal byte sequence. A wide character code has been
detected that does not correspond to a valid character,
or a byte sequence does not form a valid wide character
code.
EINPROGRESS Operation now in progress. An operation that takes a
long time to complete was attempted on a non-blocking
object (see ioctl(2) and fcntl(2)).
EINTR Interrupted system call. An asynchronous signal (such
as interrupt or quit), which the user has elected to
catch, occurred during a system call. If execution is
resumed after processing the signal, it will appear as
if the interrupted system call returned this error
condition unless the system call is restarted (see
sigvector(2)).
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
EINVAL Invalid argument. Some invalid argument (such as
unmounting a device that is not currently mounted,
mentioning an undefined signal in signal() or kill(),
or reading or writing a file for which lseek() has
generated a negative pointer). Also set by the math
functions described in the (3M) entries of this manual.
EIO I/O error - some physical I/O error. This error may in
some cases occur on a call following the one to which
it actually applies.
EISCONN Socket is already connected. A connect() request was
made on an already connected socket, or, a sendto() or
sendmsg() request on a connected socket specified a
destination other than the connected party.
EISDIR Is a directory. An attempt to open a directory for
writing.
ELOOP Too many levels of symbolic links. A path name search
involved more than MAXSYMLINKS symbolic links.
MAXSYMLINKS is defined in <sys/param.h>.
EMFILE Too many open files. No process may have more than a
system-defined number of file descriptors open at a
time.
EMLINK Too many links. An attempt to make more than the
maximum number of links to a file.
EMSGSIZE Message too long. The socket requires that the message
be sent atomically, and the size of the message to be
sent made this impossible.
ENAMETOOLONG File name too long. A path specified exceeds the
maximum path length for the system. The maximum path
length is specified by PATH_MAX and is defined in
<limits.h>. PATH_MAX is guaranteed to be at least 1023
bytes. This error is also generated if the length of a
path name component exceeds NAME_MAX and the
_POSIX_NO_TRUNC option is in effect for the specified
path. Currently, _POSIX_NO_TRUNC is in effect only for
HFS file systems configured to allow path name
components up to 255 bytes long (see convertfs(1M)) and
therefore only path names referring to such file
systems can generate the error for this case. The
values of NAME_MAX, PATH_MAX, and _POSIX_NO_TRUNC for a
particular path name can be queried by using the
pathconf() system call (see pathconf(2)).
Hewlett-Packard Company - 4 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
ENETDOWN Network is down. A socket operation encountered a dead
network.
ENETRESET Network dropped connection on reset. The host you were
connected to crashed and rebooted.
ENETUNREACH Network is unreachable. A socket operation was
attempted to an unreachable network.
ENFILE File table overflow. The system's table of open files
is full, and temporarily no more open()s can be
accepted.
ENOBUFS No buffer space available. An operation on a socket
was not performed because the system lacked sufficient
buffer space.
ENODEV No such device. An attempt was made to apply an
inappropriate system call to a device (such as read a
write-only device).
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 path name
does not exist. It also occurs with msgget(),
semget(), and shmget() when key does not refer to any
object and the IPC_CREAT flag is not set.
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 magic number (see
a.out(4)), or the file is too small to have a valid
executable file header.
ENOLCK System lock table is full. Too many files have file
locks on them, or there are too many record locks on
files, or there are too many instances of a reading or
writing process sleeping until an enforcement mode lock
clears. This error may also indicate system problems
in handling a lock request on a remote NFS file. This
error is also currently returned for all attempts to
perform locking operations on a remote NFS file that
has its locking enforcement mode bit set, since the
stateless nature of NFS prevents maintaining the
necessary lock information.
ENOMEM Not enough space. During a system call such as exec(),
brk(), fork(), or sbrk(), a program asks for more space
than the system is able to supply. This may not be a
temporary condition; the maximum space size is a system
parameter. The error can also occur if the arrangement
Hewlett-Packard Company - 5 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
of text, data, and stack segments requires too many
segmentation registers, or if there is not enough swap
space during a fork().
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).
ENOPROTOOPT Protocol not available. A bad option was specified in
a getsockopt() or setsockopt() call (see
getsockopt(2)).
ENOSPC No space left on device. During a write() to an
ordinary file, there is no free space left on the
device; or no space in system table during msgget(),
semget(), or semop() while SEM_UNDO flag is set.
ENOSYM Symbol does not exist in executable. The dynamic
loader was unable to resolve a symbolic reference in a
shared library during a call to one of the dynamic
loader interface routines (see shl_load(3X). The
program may be in an inconsistent state and should be
terminated immediately.
ENOSYS Function is not available. The requested function or
operation is not implemented or not configured in the
system.
ENOTBLK Block device required. A non-block file was mentioned
where a block device was required, such as in mount().
ENOTCONN Socket is not connected. A request to send or receive
data was disallowed because the socket was not
connected.
ENOTDIR Not a directory. A non-directory was specified where a
directory is required, such as in a path prefix or as
an argument to chdir().
ENOTEMPTY Directory not empty. An attempt was made to remove a
non-empty directory.
ENOTSOCK Socket operation on non-socket. An operation was
attempted on something that is not a socket.
ENOTTY Not a typewriter. The (ioctl()) command is
inappropriate to the selected device type.
ENXIO No such device or address. I/O on a special file
refers to a subdevice that does not exist, or is beyond
the limits of the device. It can also occur when, for
Hewlett-Packard Company - 6 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
example, a tape drive is not on line or no disk pack is
loaded on a drive.
EOPNOTSUPP Operation not supported. The requested operation on a
socket or NFS file is either invalid or unsupported.
For example, this might occur when an attempt to
accept() a connection on a datagram socket fails.
EPERM Not owner. Typically, this error indicates an attempt
to modify a file in some way forbidden except to its
owner or the super-user, such as to change its mode.
It is also returned for attempts by ordinary users to
do things for which they need, but lack, a special
privilege.
EPFNOSUPPORT Protocol family not supported. The protocol family has
not been configured into the system or no
implementation for it exists. The socket is not
connected.
EPIPE Broken pipe. Data has been written to a pipe for which
the other (reading) end has been closed. This most
often occurs when the reading process exits before the
writing process. This condition also generates the
signal SIGPIPE; the error is returned if the signal is
ignored.
EPROTONOSUPPORT
Protocol not supported. The protocol has not been
configured into the system or no implementation for it
exists.
EPROTOTYPE Protocol wrong type for socket. A protocol was
specified that does not support the semantics of the
socket type requested. For example, ARPA Internet UDP
protocol cannot be used with type SOCK_STREAM.
ERANGE Result too large. The value of a function in the math
package (3M) is not representable within machine
precision, or a semop() call would cause either a
semaphore value or a semaphore adjust value to exceed
it system-imposed maximum.
EROFS Read-only file system. An attempt to modify a file or
directory was made on a device mounted read-only.
ESHUTDOWN Cannot send after socket shutdown. A request to send
data was disallowed because the socket had already been
shut down with a previous shutdown() call.
Hewlett-Packard Company - 7 - HP-UX Release 9.0: August 1992
errno(2) errno(2)
ESOCKTNOSUPPORT
Socket type not supported. The support for the socket
type has not been configured into the system or no
implementation for it exists.
ESPIPE Illegal seek. An lseek() was issued to a pipe.
ESRCH No such process. No process can be found corresponding
to that specified by pid in kill(), rtprio(), or
ptrace(), or the process is not accessible.
ETIMEDOUT Connection timed out. A connect() request failed
because the connected party did not properly respond
after a period of time (timeout period varies,
depending on the communication protocol).
ETXTBSY Text file busy. An attempt to execute an executable
file which is currently open for writing (or reading).
Also, an attempt to open for writing an otherwise
writable file which is currently open for execution.
EWOULDBLOCK Operation would block. An operation which would cause
a process to block was attempted on an object in non-
blocking mode (see ioctl(2) and fcntl(2)).
EXDEV Cross-device link. A link to a file on another device
was attempted.
DEPENDENCIES
The following NFS errors are also defined:
EREFUSED The same error as ECONNREFUSED. The external variable
errno is defined as ECONNREFUSED for NFS compatibility.
EREMOTE Too many levels of remote in path. An attempt was made
to remotely mount an NFS file system into a path which
already has a remotely mounted NFS file system
component.
ESTALE Stale NFS file handle. A client referenced an open
file, but the file was previously deleted.
Series 700/800:
In the definition of error ENOMEM, the term ``segmentation
registers'' is invalid.
STANDARDS CONFORMANCE
errno: AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C
Hewlett-Packard Company - 8 - HP-UX Release 9.0: August 1992