intro man page on NeXTSTEP

Man page or keyword search:  
man Server   1419 pages
apropos Keyword Search (all sections)
Output format
NeXTSTEP logo
[printable version]


INTRO(2)							      INTRO(2)

NAME
       intro - introduction to system calls and error numbers

SYNOPSIS
       #include <sys/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.  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
	      Unused.

       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 limits 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  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 memory
	      During  an execve or break, a program asks for more core or swap
	      space than the system 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 signal 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 accepted.

       24  EMFILE  Too many open files
	      As released, the limit on the number of open files  per  process
	      is   64.	  Getdtablesize(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 executed.

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

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

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

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

       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  sufficient  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 connected 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 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 that is inactive on the foreign host.

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

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

       Super-user
	    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.

       Descriptor
	    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	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 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	 followed by a file name.  The
	    total length of a path name must be less  than  1024  (MAXPATHLEN)
	    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.

       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 contains 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 working 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  executed.   Directory  files  use  the  execute
	    permission to control if 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, 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 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(3), perror(3)

4th Berkeley Distribution	 May 23, 1986			      INTRO(2)
[top]

List of man pages available for NeXTSTEP

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net