Unix/Linux Go Back    

BSD 2.11 - man page for intro (bsd section 2)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

INTRO(2)										 INTRO(2)

       intro - introduction to system calls and error numbers

       #include <sys/errno.h>

       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.  Note that a
       number of system calls overload the meanings of these error numbers, and that the meanings
       must be interpreted according to the type and circumstances of the call.

       As  with  normal arguments, all return codes and values from functions are of type integer
       unless otherwise noted.	An error number is also made available in the  external  variable
       errno,  which  is not cleared on successful calls.  Thus errno should be tested only after
       an error has occurred.

       The following is a complete list of the errors and their names as given in <sys/errno.h>.

       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  or	process  group whose number was given does not exist, or any such
	      process is already dead.

       4  EINTR  Interrupted system call
	      An asynchronous signal (such as interrupt or quit) that the  user  has  elected  to
	      catch  occurred during a system call.  If execution is resumed after processing the
	      signal and the system call is not restarted, 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 lim-
	      its of the device.  It may also occur when, for example, 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  20480  bytes  (or  the  current  limit,  NCARGS  in
	      <sys/param.h>) is presented to execve.

       8  ENOEXEC  Exec format error
	      A  request  is made to execute a file that, although it has the appropriate permis-
	      sions, 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 memory
	      During an execve or break, a program asks for more core or swap space than the sys-
	      tem  is  able to supply, or a process size limit would be exceeded.  A lack of swap
	      space is normally a temporary 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.  Soft limits may be increased to their corresponding hard limits.

       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  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,  or  active  text  segment).   A request was made to an exclusive
	      access device that was already in use.

       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
	      An attempt was made to apply an inappropriate system call to  a  device,	e.g.,  to
	      read a write-only device, or the device is not configured by the system.

       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 sig-
	      nal in signal, or some other argument inappropriate for the call.  Also set by math
	      functions, (see math(3)).

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

       24  EMFILE  Too many open files
	      As  released,  the limit on the number of open files per process is 64.  Getdtable-
	      size(2) will obtain the current limit.  Customary configuration limit on most other
	      UNIX systems is 20 per process.

       25  ENOTTY  Inappropriate ioctl for device
	      The  file  mentioned  in	an ioctl is not a terminal or one of the devices to which
	      this call applies.

       26  ETXTBSY  Text file busy
	      An attempt to execute a pure-procedure program that is currently open for  writing.
	      Also  an	attempt  to  open for writing a pure-procedure program that is being exe-

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

       28  ENOSPC  No space left on device
	      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 socket or 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 to make more than 32767 hard links to a file.

       32  EPIPE  Broken pipe
	      A 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
	      caught or ignored.

       33  EDOM  Argument too large
	      The argument of a function in the math package (3M) is out of  the  domain  of  the

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

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

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

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

       38  ENOTSOCK  Socket operation on non-socket

       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 or some
	      other network limit.

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

       42  ENOPROTOOPT	Option not supported by protocol
	      A bad option or level 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

       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 NS addresses with ARPA Internet pro-

       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

       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 peer
	      A connection was forcibly closed by a peer.  This normally results from a  loss  of
	      the connection on the remote socket due to a timeout or a reboot.

       55  ENOBUFS  No buffer space available
	      An operation on a socket or pipe was not performed because the system lacked suffi-
	      cient buffer space or because a queue was full.

       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 when already connected.

       57  ENOTCONN  Socket is not connected
	      An  request  to  send or receive data was disallowed because the socket is not con-
	      nected and (when sending on a  datagram socket) no address was supplied.

       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  unused

       60  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 communica-
	      tion 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 that is inactive on the foreign

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

       63  ENAMETOOLONG  File name too long
	      A  component of a path name exceeded 255 (MAXNAMELEN) characters, or an entire path
	      name exceeded 1023 (MAXPATHLEN-1) characters.

       64  EHOSTDOWN  Host is down
	      A socket operation failed because the destination host was down.

       65  EHOSTUNREACH  Host is unreachable
	      A socket operation was attempted to an unreachable host.

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

       69  EDQUOT  Disc quota exceeded
	      A  write	to an ordinary file, the creation of a directory or symbolic link, or the
	      creation of a directory entry failed because the user's quota of	disk  blocks  was
	      exhausted,  or  the  allocation of an inode for a newly created file failed because
	      the user's quota of inodes was exhausted.

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

       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 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 signaling of related processes (see killpg(2)) and the  job
	    control mechanisms of csh(1).

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

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

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

	    All  processes have a real user ID and real group ID.  These are initialized from the
	    equivalent attributes of the process that created it.

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

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

       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.

	    An	integer assigned by the system when a file is referenced by open(2) or dup(2), or
	    when a socket is created by pipe(2), socket(2) or socketpair(2), which uniquely iden-
	    tifies an access path to that file or socket from a given process or any of its chil-

       File Name
	    Names consisting of up to 255 (MAXNAMELEN) characters 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 unwise to use *, ?, [ or ] as part of file names because of
	    the special meaning attached to these characters by the shell.

       Path Name
	    A  path  name  is  a null-terminated character string starting with an optional slash
	    (/), followed by zero or more directory names separated by slashes,  optionally  fol-
	    lowed  by  a file name.  The total length of a path name must be less than 1024 (MAX-
	    PATHLEN) characters.

	    If a path name 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.

	    A directory is a special type of file that contains entries that  are  references  to
	    other  files.   Directory  entries are called links.  By convention, a directory con-
	    tains at least two links, . and .., referred to as dot and dot-dot respectively.  Dot
	    refers to the directory itself and dot-dot refers to its parent directory.

       Root Directory and Current Working Directory
	    Each process has associated with it a concept of a root directory and a current work-
	    ing directory for the purpose of resolving path  name  searches.   A  process's  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 exe-
	    cuted.  Directory files use the execute permission to control if the directory may be

	    File access permissions are interpreted by the system as they apply to three  differ-
	    ent  classes of users: the owner of the file, those users in the file's group, 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 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 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 permissions
	    allow the access.

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

	    Otherwise, permission is denied.

       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  part-
	    ner, whether communication is reliable, the format used in naming message recipients,

	    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 cho-
	    sen from the address family in which the socket was created.

       intro(3), perror(3)

4th Berkeley Distribution		   May 23, 1986 				 INTRO(2)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 10:06 AM.