Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ intro(2) — UTek W2.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(3m)

perror(3c)



INTRO(2)                COMMAND REFERENCE                INTRO(2)



NAME
     intro - introduction to system calls and error numbers

SYNOPSIS
     #include <errno.h>

DESCRIPTION
     This section describes all of the system calls.  Most of
     these calls have one or more error returns.  An error
     condition is indicated by an otherwise impossible return
     value.  This is almost always -1; the individual
     descriptions specify the details.

     As with normal arguments, all return codes and values from
     functions are of type ``int'' unless otherwise noted.  An
     error number is also made available in the external variable
     errno.  Errno is not cleared on successful calls, so it
     should be tested only after an error has been indicated.

     The following is a complete list of the errors and their
     names as given in <errno.h>.  Only these symbolic names for
     error numbers should be used in programs, since the actual
     value of the error number may vary with the implementation.
     Certain implementations may contain extensions which prevent
     some errors from ever occurring.

     0       Unused

     1  EPERM  Not file owner or superuser
          Typically this error indicates an attempt to modify a
          file in some way forbidden by the file protection
          codes.  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
          This error occurs when a file name is specified and the
          file should exist but doesn't, when the specified file
          is a symbolic link to a file or directory that does not
          exist, or when one of the directories in a pathname
          does not exist.

     3  ESRCH  No such process
          No such process can be found corresponding to that
          specified by the process ID.

     4  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.




Printed 10/17/86                                                1





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     5  EIO  I/O error
          Some physical I/O error occurred during a read or
          write.  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 beyond the limits of the device.  It may
          also occur when, for example, a tape drive is not on
          line, or a disk pack is not loaded on a drive.

     7  E2BIG  Argument list too long
          An argument list longer than NCARGS (defined in
          <sys/param.h>) bytes is presented to a member of the
          exec family.

     8  ENOEXEC  Exec format error
          A request is made to execute a file which, although it
          has the appropriate permissions, is not in the proper
          format for an executable object program.  See a.out(5).

     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
          which is open only for writing (respectively reading).

     10  ECHILD  No children from process
          Wait and the process has no living or unwaited-for
          children.

     11  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.  This may be a temporary condition and
          subsequent calls to the same routine may complete
          normally.

     12  ENOMEM  Not enough core or swap space
          During an execve or brk or sbrk, a program asks for
          more core or swap space than the system is able to
          supply.  A lack of swap space is normally a temporary
          condition.  However, a lack of core is not a temporary
          condition; the maximum core size is a system parameter.

     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 access an argument of a system call.




Printed 10/17/86                                                2





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     15  ENOTBLK  Block device required
          A non-block file was mentioned where a block device was
          required, e.g. in mount.

     16  EBUSY  Device busy
          An attempt was made to access a device that was already
          in use, such as mounting a device that is already
          mounted.  This error is also returned if an attempt is
          made to dismount a device on which there is an active
          file directory (open file, current directory, mounted-
          on file, active text segment).

     17  EEXIST  File exists
          An existing file was mentioned in an inappropriate
          context, e.g.  link.

     18  EXDEV  Cross-device link
          A hard link to a file on another device was attempted.

     19  ENODEV  No such device driver or operation
          An attempt was made to apply an inappropriate system
          call 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, for example in a pathname or as an argument
          to chdir(2).

     21  EISDIR  Is a directory
          An attempt was made to write on a directory.

     22  EINVAL  Invalid argument
          Some invalid argument (e.g., mentioning an unknown
          signal in kill, reading or writing a file for which
          lseek has generated a negative pointer) has been used.
          Also set by math functions, see intro(3m).

     23  ENFILE  File table overflow
          The system's table of open files is full, and
          temporarily no more opens can be accepted.

     24  EMFILE  Too many open files
          No process may have more than NOFILE (defined in
          <sys/max.h>) file descriptors open at a time.

     25  ENOTTY  Request does not apply
          A given request is not recognized by or does not apply
          to a specified file or device.

     26  ETXTBSY  Text file busy
          An attempt was made to open for writing a shared-text
          file that is being executed.



Printed 10/17/86                                                3





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     27  EFBIG  File too large
          The size of a file exceeded the maximum file size.

     28  ENOSPC  No space left on device
          During a write to an ordinary file, the creation of a
          directory or symbolic link, or the creation of a
          directory entry failed because no more disk blocks are
          available on the file system, or the allocation of an
          inode for a newly created file failed because no more
          inodes are available on the file system.

     29  ESPIPE  Illegal seek
          An lseek was issued to a pipe.  This error may also be
          issued for other non-seekable devices.

     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 was made to make more than the legal limit
          of hard links to a file.

     32  EPIPE  Unconnected pipe
          A write on a pipe or socket was attempted, 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 range
          The argument of a function in the math package (see
          intro(3m)) is out of the domain of the function.

     34  ERANGE  Result too large
          The value of a function in the math package is not
          representable within machine precision.

     35  EWOULDBLOCK  Operation would block
          An operation which would cause a process to block was
          attempted on a object while in non-blocking mode (see
          ioctl (2)).

     36  EINPROGRESS  Operation now in progress
          An operation which takes a long time to complete (such
          as a connect (2)) was attempted on a non-blocking
          object (see ioctl (2)).

     37  EALREADY  Disconnection already in progress
          An operation was attempted on a non-blocking object
          which already had an operation in progress.





Printed 10/17/86                                                4





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     38  ENOTSOCK  Socket operation on non-socket
          Self-explanatory.

     39  EDESTADDRREQ  Destination address required
          A required address was omitted from an operation on a
          socket.

     40  EMSGSIZE  Message too long
          A message sent on a socket was larger than the internal
          message buffer.

     41  EPROTOTYPE  Protocol wrong type for socket
          A protocol was specified which does not support the
          semantics of the socket type requested. For example you
          cannot use the ARPA Internet UDP protocol with type
          SOCK_STREAM.

     42  ENOPROTOOPT  Protocol not available
          A bad option was specified in a getsockopt(2) or
          setsockopt(2) call.

     43  EPROTONOSUPPORT  Protocol not supported
          The protocol has not been configured into the system or
          no implementation for it exists.

     44  ESOCKTNOSUPPORT  Socket type not supported
          The support for the socket type has not been configured
          into the system or no implementation for it exists.

     45  EOPNOTSUPP  Operation not supported on socket
          For example, 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 no implementation for it exists.

     47  EAFNOSUPPORT  Address family not supported by protocol
          family
          An address incompatible with the requested protocol was
          used.  For example, you shouldn't necessarily expect to
          be able to use PUP Internet addresses with ARPA
          Internet protocols.

     48  EADDRINUSE  Address already in use
          Only one usage of each address is normally permitted.

     49  EADDRNOTAVAIL  Can't assign requested address
          Normally results from an attempt to create a socket
          with an address not on this machine.





Printed 10/17/86                                                5





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     50  ENETDOWN  Network is down
          A socket operation encountered a dead network.

     51  ENETUNREACH  Network is unreachable
          A socket operation was attempted to an unreachable
          network.

     52  ENETRESET  Network dropped connection on reset
          The host you were connected to crashed and rebooted.

     53  ECONNABORTED  Software caused connection abort
          A connection abort was caused internal to your host
          machine.

     54  ECONNRESET  Connection reset by remote host
          A connection was forcibly closed by a peer.  This
          normally results from the peer executing a shutdown (2)
          call.

     55  ENOBUFS  No buffer space available
          An operation on a socket or pipe was not performed
          because the system lacked sufficient buffer space.

     56  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.

     57  ENOTCONN  Socket is not connected
          An request to send or receive data was disallowed
          because the socket is not connected.

     58  ESHUTDOWN  Can't send after socket shutdown
          A request to send data was disallowed because the
          socket had already been shut down with a previous
          shutdown(2) call.

     59  ETOOMANYREFS  Too many references; can't splice
          Unused.

     60  ETIMEDOUT  Connection timed out
          A connect request failed because the connected party
          did not properly respond after a period of time.  (The
          timeout period is dependent on the communication
          protocol.)

     61  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 which is inactive on the
          foreign host.



Printed 10/17/86                                                6





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     62  ELOOP  Too many levels of symbolic links
          A pathname lookup involved more than 8 symbolic links.

     63  ENAMETOOLONG  File name too long
          A component of a pathname exceeded MAXNAMLEN
          characters, or an entire pathname exceeded MAXPATHLEN
          characters.  These are defined in <sys/max.h>.

     64  EHOSTDOWN  Host is down
          A requested host is not responding.

     65  EHOSTUNREACH  Host is unreachable
          A requested host is not reachable from the current
          node.

     66  ENOTEMPTY  Directory not empty
          A directory with entries other than "." and ".." was
          supplied to a remove directory or rename call.

     67  EPROCLIM  Too many processes
          Unused.

     68  EUSERS  Too many users
          Unused.

     69  EDQUOT  Disk quota exceeded
          Unused.

     70  ENOASCII  Name contains byte with high-order bit set
          A given pathname contains a non-ASCII character, a byte
          with the high-order bit set.

     71  EMCOLLIDE  Map onto something already there
          New areas may only be added where there is currently no
          memory.  If you want to replace an area, unmap it
          first.

     72  EMRANGE  Designated area out of range
          Possible problems: Any part of the addressed area 1)
          crosses the P0:P1 boundary (on a VAX); 2) is in the u
          area; 3) is out of the user's address space.

     73  EDFS_CD  Too many chdir's to remote host
          A limited number of chdir's can be made to a remote
          host at one time; this limit has been exceeded.

     74  EDFSREF  Reference is to remote file
          A reference to a remote file was detected but is not
          supported for this system call.  In some cases (link,
          rename) this error is returned if the two pathnames do
          not reference files on the same host.




Printed 10/17/86                                                7





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     75  EDFSBADRESP  Response length incorrect
          The response from a remote host to the system call sent
          to that host was of incorrect length.  This is not a
          normal error. Contact your service representative.

     76  EDFSBADCMD  Bad command (invalid command or wrong
          length)
          The Distributed File System Daemon on a remote host
          received a garbled command from the local host.  This
          is not a normal error. Contact your service
          representative.

     77  EDFSNOSUCHHOST  No such host
          You specified a pathname of the form //host/path, and
          the operating system was unable to find the location of
          'host'.  Check that you have the correct host name and
          that the host is operational on the network.

     78  EDFSNOBUF  Malloc failed on remote system; try smaller (
          <8k ) read or write
          You tried to do a read or write of more than 8192 bytes
          to a remote file, and the malloc(3) call to get a
          buffer of the size you specified failed. Try again with
          an 8kbyte or smaller request.

     79  EDFSBADVER  Remote system couldn't handle version of
          request
          The version of the Distributed File System on the local
          system does not match the version of the daemon on the
          remote system.

     80  EDFSNODAEMON  DFS daemon is not running
          A reference of the form "//hostname/pathname" was
          detected, but the attempt to convert the hostname to an
          internet address failed because the Distributed File
          System daemon on the local system was not running.

     81  EDFSNOPROC  No more processes on remote system
          A Distributed File System reference failed because when
          the daemon on the remote host forked a process to
          handle your request, the remote system's process table
          was full.  This may be a temporary condition.

DEFINITIONS
     Process ID
          Each active process in the system is uniquely
          identified by a positive integer called a process ID.
          The range of this ID is from 0 to NPROC.

     Parent process ID
          A new process is created by a currently active process;
          see fork(2).  The parent process ID of a process is the



Printed 10/17/86                                                8





INTRO(2)                COMMAND REFERENCE                INTRO(2)



          process ID of its creator.

     Process Group ID
          Each active process is a member of a process group that
          is identified by a positive integer called the process
          group ID.  This is the process ID of the group leader.
          This grouping permits the signalling of related
          processes (see killpg(2)) and the job control
          mechanisms of csh(1csh).

     Tty Group ID
          Each active process can be a member of a terminal group
          that is identified by a positive integer called the tty
          group ID.  This grouping is used to arbitrate between
          multiple jobs contending for the same terminal; see
          csh(1csh), and tty(4).

     Real User ID and Real Group ID
          Each user allowed on the system is identified by a
          positive integer called a real user ID.

          Each user is also a member of one or more groups.  One
          of these groups is distinguished from others and used
          in implementing accounting facilities.  The positive
          integer corresponding to this distinguished group is
          termed the real group ID.

          An active process has a real user ID and real group ID
          that are set to the real user ID and real group ID,
          respectively, of the user responsible for the creation
          of the process.

     Effective User ID, Effective Group ID, and Access Groups
          Access to system resources is governed by three values:
          the effective user ID, the effective group ID, and the
          group access list.

          The effective user ID and effective group ID are
          initially the process's real user ID and real group ID
          respectively.  Either may be modified through execution
          of a set-user-ID or set-group-ID file (possibly by one
          of its ancestors); see execve(2).

          The group access list is an additional set of group
          ID's used only in determining resource accessibility.
          Access checks are performed as described below in
          ``File Access Permissions.''

     Super-user
          A process is recognized as a super-user process and is
          granted special privileges if its effective user ID is
          0.



Printed 10/17/86                                                9





INTRO(2)                COMMAND REFERENCE                INTRO(2)



     Special Processes
          The processes with a process ID's of 0, 1, and 2 are
          special.  Process 0 is the scheduler.  Process 1 is the
          initialization process init, and is the ancestor of
          every other process in the system.  It is used to
          control the process structure.  Process 2 is the paging
          daemon.

     Descriptor
          An non-negative integer assigned by the system when a
          file is referenced by open(2), dup(2), fcntl(2), or
          pipe(2), or when a socket is referenced by socket(2) or
          socketpair(2).  The descriptor uniquely identifies an
          access path to that file or socket from a given process
          or any of its children.

     File Name
          Names consisting of up to MAXNAMLEN may be used to name
          an ordinary file, special file, or directory.

          These characters may be selected from the set of all
          ASCII character excluding 0 (null) and the ASCII code
          for / (slash).  (The parity bit, bit 8, must be 0.)

          Note that it is generally preferable to use only
          letters, numbers, underscores and periods within file
          names, since the use of non-printing and other special
          characters can be confusing or ambiguous in certain
          contexts.

     Pathname and Path Prefix
          A pathname is a null-terminated character string
          starting with an optional slash (/), followed by zero
          or more directory names separated by slashes,
          optionally followed by a file name.  The total length
          of a pathname must be less than MAXPATHLEN characters.

          A path prefix is a pathname without the final file
          name.

          If a pathname begins with a slash, the path search
          begins at the root directory.  Otherwise, the search
          begins from the current working directory.  A slash by
          itself names the root directory.  A null pathname
          refers to the current directory.

     Directory
          A directory is a special type of file which contains
          entries which are pointers to data files or other
          directories.  Directory entries are called links.  By
          convention, a directory contains at least two links, .
          and .., referred to as dot and dot-dot respectively.



Printed 10/17/86                                               10





INTRO(2)                COMMAND REFERENCE                INTRO(2)



          Dot refers to the directory itself and dot-dot refers
          to its parent directory.  In the root directory, ..
          refers to the root directory itself.

     Root Directory and Current Working Directory
          Each process has associated with it a concept of a root
          directory and a current working directory for the
          purpose of resolving pathname searches.  A process'
          root directory need not be the root directory of the
          root file system.

     File Access Permissions
          Every file in the file system has a set of access
          permissions.  These permissions are used in determining
          whether a process may perform a requested operation on
          the file (such as opening a file for writing).  Access
          permissions are established at the time a file is
          created.  They may be changed at some later time
          through the chmod(2) call.

          File access is broken down according to whether a file
          may be read, written, or executed.  Directory files use
          the execute permission to indicate whether the
          directory may be searched.

          File access permissions are interpreted by the system
          as they apply to three different classes of users: the
          owner of the file, those users in the file's group, and
          anyone else.  Every file has an independent set of
          access permissions for each of these classes.  When an
          access check is made, the system decides if permission
          should be granted by checking the access information
          applicable to the class of use of the caller.

          Read, write, and execute/search permissions on a file
          are granted to a process if:

          The process's effective user ID is that of the super-
          user.

          The process's effective user ID matches the user ID of
          the owner of the file and the ``owner'' access
          permissions allow the access.

          The process's effective user ID does not match the user
          ID of the owner of the file, and either the process's
          effective group ID matches the group ID of the file, or
          the group ID of the file is in the process's group
          access list, and the ``group'' access permissions allow
          the access.

          Neither the effective user ID nor effective group ID



Printed 10/17/86                                               11





INTRO(2)                COMMAND REFERENCE                INTRO(2)



          and group access list of the process match the
          corresponding user ID and group ID of the file, but the
          access permissions for ``other users'' allow access.

          Otherwise, permission is denied.

     Character and Block Special Files

          Character and block special files are used to refer to
          physical devices.  Certain restrictions may apply to
          the use of character and block special files which are
          implementation-dependent.

     Sockets and Address Families

          A socket is an endpoint for communication between
          processes.  Each socket has queues for sending and
          receiving data.

          Sockets are typed according to their communications
          properties.  These properties include whether messages
          sent and received at a socket require the name of the
          partner, whether communication is reliable, the format
          used in naming message recipients, etc.

          Each instance of the system supports some collection of
          socket types; consult socket(2) for more information
          about the types available and their properties.

          Each instance of the system supports some number of
          sets of communications protocols.  Each protocol set
          supports addresses of a certain format.  An Address
          Family is the set of addresses for a specific group of
          protocols.  Each socket has an address chosen from the
          address family in which the socket was created.

SEE ALSO
     intro(3m), perror(3c).

















Printed 10/17/86                                               12





































































%%index%%
na:72,90;
sy:162,184;
de:346,2182;2672,2281;5097,2125;7366,2129;9639,2024;11807,2116;14067,1914;16125,2411;18680,2359;21183,2469;23796,2445;26385,1567;
se:27952,123;
%%index%%000000000199

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026