Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
INTRO(2)                  FreeBSD System Calls Manual                 INTRO(2)

       intro, errno - introduction to system calls and error numbers

       #include <errno.h>

       Section 2 of this manual lists all the entries into the system.  Most
       of these calls have an error return.  An error condition is indicated
       by an otherwise impossible returned value.  Almost always this is -1;
       the individual sections specify the details.  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

       There is a table of messages associated with each error, and a routine
       for printing the message; See perror(3).  The possible error numbers
       are not recited with each writeup in section 2, since many errors are
       possible for most of the calls.  Here is a list of the error numbers,
       their names as defined in <errno.h>, and the messages available using

       0    Error 0

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

       3  ESRCH  No such process
              The process whose number was given to signal and ptrace does not
              exist, or is already dead.

       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.

       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 that does not exist,
              or beyond the limits of the device.  It may also occur when, for
              example, a tape drive is not dialled in or no disk pack is
              loaded on a drive.

       7  E2BIG  Arg list too long
              An argument list longer than 5120 bytes is presented to exec.

       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 magic
              number, see a.out(5).

       9  EBADF  Bad file number
              Either a file descriptor refers to no open file, or a read
              (resp. write) request is made to a file that is open only for
              writing (resp. reading).

       10  ECHILD  No children
              Wait and the process has no living 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 exec or break, a program asks for more core than the
              system is able to supply.  This is not a temporary condition;
              the maximum core size is a system parameter.  The error may also
              occur if the arrangement of text, data, and stack segments
              requires too many segmentation registers.

       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
              the arguments of a system call.

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

       16  EBUSY  Mount device 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).

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

       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 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 path name or as an argument to chdir.

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

       22  EINVAL  Invalid argument
              Some invalid argument: dismounting a non-mounted device,
              mentioning an unknown signal in signal, reading or writing a
              file for which seek has generated a negative pointer.  Also set
              by math functions, see intro(3).

       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
              Customary configuration limit is 20 per process.

       25  ENOTTY  Not a typewriter
              The file mentioned in stty or gtty is not a terminal or one of
              the other devices to which these calls apply.

       26  ETXTBSY  Text file busy
              An attempt to execute a pure-procedure program that is currently
              open for writing (or reading!).  Also an attempt to open for
              writing a pure-procedure program that is being executed.

       27  EFBIG  File too large
              The size of a file exceeded the maximum (about 1.0E9 bytes).

       28  ENOSPC  No space left on device
              During a write to an ordinary file, there is no free space left
              on the device.

       29  ESPIPE  Illegal seek
              An lseek was issued to a pipe.  This error should 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 to make more than 32767 links 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
              The argument of a function in the math package (3M) is out of
              the domain of the function.

       34  ERANGE  Result too large
              The value of a function in the math package (3M) is
              unrepresentable within machine precision.


       as /usr/include/sys.s file ...

       The PDP11 assembly language interface is given for each system call.
       The assembler symbols are defined in `/usr/include/sys.s'.

       Return values appear in registers r0 and r1; it is unwise to count on
       these registers being preserved when no value is expected.  An
       erroneous call is always indicated by turning on the c-bit of the
       condition codes.  The error number is returned in r0.  The presence of
       an error is most easily tested by the instructions bes and bec (`branch
       on error set (or clear)').  These are synonyms for the bcs and bcc

       On the Interdata 8/32, the system call arguments correspond well to the
       arguments of the C routines.  The sequence is:

              la   %2,errno
              l    %0,&callno
              svc  0,args

       Thus register 2 points to a word into which the error number will be
       stored as needed; it is cleared if no error occurs.  Register 0
       contains the system call number; the nomenclature is identical to that
       on the PDP11.  The argument of the svc is the address of the arguments,
       laid out in storage as in the C calling sequence.  The return value is
       in register 2 (possibly 3 also, as in pipe) and is -1 in case of error.
       The overflow bit in the program status word is also set when errors



Want to link to this manual page? Use this URL:

home | help