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)							      INTRO(2)

NAME
       intro - introduction to system services and error numbers

SYNOPSIS
       #include	<errno.h>

DESCRIPTION
       This section describes all of the system	calls.

       A 2V section number means one or	more of	the following:

       o  The man page documents System	V behavior only.

       o  The  man page	documents default SunOS	behavior and System V behavior
	  as it	differs	from the default behavior.  These System V differences
	  are presented	under SYSTEM V section headers.

       o  The  man page	documents behavior compliant with IEEE Std 1003.1-1988
	  (POSIX.1).

       Compile programs	for the	System V environment using /usr/5bin/cc.  Com-
       pile programs for the default SunOS environment using /usr/bin/cc.  The
       following man pages describe the	various	environments provided by  Sun:
       lint(1V),   ansic(7V),	bsd(7),	  posix(7V),   sunos(7V),  svidii(7V),
       svidiii(7V), xopen(7V).

       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.  An error
       code  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.   Note:  several system calls overload the
       meanings	of these error numbers,	and the	meanings must  be  interpreted
       according  to  the type and circumstances of the	call.  See ERROR CODES
       below for a list	of system error	codes.

       As with normal arguments, all return codes and  values  from  functions
       are of type integer unless otherwise noted.

       The rest	of this	man page is organized as follows:

       SYSTEM PARAMETERS	System limits, values and options.

       DEFINITIONS		System abstractions and	services.

       STREAMS			Modular	 communication between software	layers
				(tty system, networking).

       SYSTEM V	IPC		System V shared	memory,	semaphores,  and  mes-
				sages.

       ERROR CODES		A  list	 of  system  error codes with descrip-
				tions.

       LIST OF SYSTEM CALLS	A list of all system calls with	brief descrip-
				tions.

SYSTEM PARAMETERS
       Sections	 2  and	3 support a naming convention for those	system parame-
       ters that may change from one object to another (for example, path name
       length  may  is	255  on	a UFS file system but may be 14	on an NFS file
       system exported by a System V based server).  Typically,	the system has
       to  be  queried	(using	pathconf(2V),  fpathconf(), or sysconf(2V)) to
       retrieve	the parameter of interest.   The  parameters  have  conceptual
       names such as PATH_MAX.	These names are	defined	in header files	if and
       only if they are	invariant across all file systems and releases of  the
       operating  system,  that	 is, very rarely.  Because they	may be defined
       and/or available	from the system	calls, there have to be	separate names
       for  the	 parameters and	their values.  The notation {PATH_MAX} denotes
       the value  of  the  parameter  PATH_MAX.	  Do  not  confuse  this  with
       _PC_PATH_MAX,  the  name	 that is passed	to the system call to retrieve
       the value:

	      maxpathlen = pathconf(".", _PC_PATH_MAX);

       See pathconf(2V), and sysconf(2V) for further information  about	 these
       parameters.

DEFINITIONS
   Controlling Terminal
       A terminal that is associated with a session.  Each session may have at
       most one	controlling terminal; a	terminal may be	the controlling	termi-
       nal of at most one session.  The	controlling terminal is	used to	direct
       signals (such as	interrupts and job control signals) to the appropriate
       processes by way	of the tty's process group.  Controlling terminals are
       assigned	when a session leader opens a terminal file that is  not  cur-
       rently a	controlling terminal.

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

   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	direc-
       tory itself and dot-dot refers to its parent directory.

   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	supplementary group ID.

       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 (pos-
       sibly by	one of its ancestors) (see execve(2V)).

       The supplementary group ID are an additional set	 of  group  ID's  used
       only  in	 determining  resource	accessibility.	Access checks are per-
       formed as described below in File Access	Permissions.

   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(2V) 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 supplementary	group IDs, and the group  per-
	      missions allow the access.

	      Neither the effective user ID nor	effective group	ID and supple-
	      mentary group IDs	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.

   File	Name
       Names consisting	of up to {NAME_MAX} 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: it	is generally unwise to use *, ?, [, or ] as part of file names
       because of the special meaning attached	to  these  characters  by  the
       shell.	See  sh(1).   Although permitted, it is	advisable to avoid the
       use of unprintable characters in	file names.

   Parent Process ID
       A new process is	created	by a currently active process fork (2V).   The
       parent process ID of a process is the process ID	of its creator.

   Path	Name and Path Prefix
       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 {PATH_MAX} characters.

       More precisely, a path name is a	null-terminated	character string  con-
       structed	as follows:

	      <path-name>::=<file-name>|<path-prefix><file-name>|/
	      <path-prefix>::=<rtprefix>|/<rtprefix>
	      <rtprefix>::=<dirname>/|<rtprefix><dirname>/

       where  <file-name> is a string of 1 to {NAME_MAX} characters other than
       the ASCII slash and null, and <dirname> is a string of 1	to  {NAME_MAX}
       characters  (other  than	 the ASCII slash and null) that	names a	direc-
       tory.

       If a path name begins with a slash,  the	 search	 begins	 at  the  root
       directory.   Otherwise, the search begins at the	current	working	direc-
       tory.

       A slash,	by itself, names the root directory.  A	dot (.)	names the cur-
       rent working directory.

       A null path name	also refers to the current directory. However, this is
       not true	of all UNIX systems.  (On such systems,	accidental  use	 of  a
       null  path  name	 in  routines that do not check	for it may corrupt the
       current working directory.)  For	portable  code,	 specify  the  current
       directory explicitly using `"."', rather	than `""'.

   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  ID  is  the
       process ID of the group leader.	This grouping permits the signaling of
       related processes (see the description of killpg() on kill(2V)) and the
       job control mechanisms of csh(1).  Process groups exist from their cre-
       ation until the last member is reaped (that is, a parent	issued a  call
       to wait(2V)).

   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	MAXPID
       (see <sys/param.h>).

   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	facil-
       ities.  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 ini-
       tialized	from the equivalent attributes of the process that created it.

   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.   The	root directory is used as the starting point for abso-
       lute path name resolution.  The current working directory  is  used  as
       the starting point for relative path name resolution.  A	process's root
       directory need not be (but typically is)	the root directory of the root
       file system.

   Session
       Each  process  is  a member of a	session.  A session is associated with
       each controlling	terminal in the	system,	such as	login shells and  win-
       dows.  Each process is created in the session of	its parent.  A process
       may alter its session using setsid(2V) if it is not already  a  session
       leader.	 The  system  supports	session	 IDs.	A  session leader is a
       process having process ID equal to process group	ID  equal  to  session
       ID.   Only  a  session  leader  may acquire a controlling terminal.  In
       SunOS Release 4.1, processes are	created	in  sessions  by  init(8)  and
       inetd  (8C).  Sessions are also created for processes that disassociate
       themselves from a controlling terminal using

	      ioctl(fd,	TIOCNOTTY, 0)

       or

	      setpgrp(mypid, 0)	For more information about sessions, see  set-
	      sid(2V).

   Signal
       Signals	are used for notification of asynchronous events.  Signals may
       directed	to processes, process groups, and other	combinations  of  pro-
       cesses.	 Signals  may be sent by a process or by the operating system.
       Some signals may	be caught.  There is typically a default  behavior  on
       receipt	if  they  are not caught.  For more information	about signals,
       see signal(3V), kill(2V), sigvec(2), termio(4).

   Sockets and Address Families
       A socket	is an endpoint for communication between processes, similar to
       the  way	 a  telephone is the endpoint of communication between humans.
       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 communica-
       tions 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  fam-
       ily in which the	socket was created.

   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.

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

   Tty Process Group
       Each active process can be a member of a	terminal group that is identi-
       fied by a positive integer called the tty process group ID. This	group-
       ing  is used to arbitrate between multiple jobs contending for the same
       terminal	(see csh(1), and termio(4)), to	direct signals	(tty  and  job
       control)	 to the	appropriate process group, and to terminate a group of
       related processes upon termination of one of the	processes in the group
       (see exit(2V) and sigvec(2)).

STREAMS
       A set of	kernel mechanisms that support the development of network ser-
       vices and data communication drivers.  It defines  interface  standards
       for character input/output within the kernel and	between	the kernel and
       user level processes.  The STREAMS mechanism  is	 composed  of  utility
       routines, kernel	facilities and a set of	data structures.

   Stream
       A  stream  is  a	full-duplex data path within the kernel	between	a user
       process and driver routines.  The primary components are	a stream head,
       a  driver  and zero or more modules between the stream head and driver.
       A stream	is analogous to	a Shell	pipeline except	 that  data  flow  and
       processing are bidirectional.

   Stream Head
       In a stream, the	stream head is the end of the stream that provides the
       interface between the stream and	a user process.	 The  principle	 func-
       tions  of  the stream head are processing STREAMS-related system	calls,
       and passing data	and information	between	a user process and the stream.

   Driver
       In a stream, the	driver provides	the interface between peripheral hard-
       ware and	the stream.  A driver can also be a pseudo-driver, such	 as  a
       multiplexor  or	emulator,  and	need not be associated with a hardware
       device.

   Module
       A module	is an entity containing	processing routines for	input and out-
       put  data.   It	always	exists	in the middle of a stream, between the
       stream's	head and a driver.  A module is	the STREAMS counterpart	to the
       commands	 in  a	Shell pipeline except that a module contains a pair of
       functions  which	 allow	independent  bidirectional   (downstream   and
       upstream) data flow and processing.

   Downstream
       In a stream, the	direction from stream head to driver.

   Upstream
       In a stream, the	direction from driver to stream	head.

   Message
       In a stream, one	or more	blocks of data or information, with associated
       STREAMS control structures.  Messages can be of several defined	types,
       which  identify	the  message contents.	Messages are the only means of
       transferring data and communicating within a stream.

   Message Queue
       In a stream, a linked list of messages awaiting processing by a	module
       or driver.

   Read	Queue
       In  a  stream,  the message queue in a module or	driver containing mes-
       sages moving upstream.

   Write Queue
       In a stream, the	message	queue in a module or  driver  containing  mes-
       sages moving downstream.

   Multiplexor
       A  multiplexor  is a driver that	allows STREAMS associated with several
       user processes to be connected to a single driver, or  several  drivers
       to  be  connected to a single user process.  STREAMS does not provide a
       general multiplexing driver, but	does provide the facilities  for  con-
       structing  them,	 and  for  connecting  multiplexed  configurations  of
       STREAMS.

SYSTEM V IPC
       The SunOS system	supports the System V IPC namespace.  For  information
       about  shared memory, semaphores	and messages see msgctl(2), msgget(2),
       msgop(2), semctl(2),  semget(2),	 semop(2),  shmctl(2),	shmget(2)  and
       shmop(2).

ERROR CODES
       Each  system  call description attempts to list all possible error num-
       bers.  The following is a complete list of the error numbers and	 their
       names as	given in <errno.h>.

       E2BIG  7	 Arg list too long
	      An  argument  list  longer  than 1,048,576 bytes is presented to
	      execve(2V) or a routine that called execve().

       EACCES  13  Permission denied
	      An attempt was made to access a file in a	way forbidden  by  the
	      protection system.

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

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

       EADV  83	 Advertise error
	      An attempt was made to  advertise	 a  resource  which  has  been
	      advertised already, or to	stop the RFS while there are resources
	      still advertised,	or to force unmount  a	resource  when	it  is
	      still advertised.	 This error is RFS specific.

       EAFNOSUPPORT  47	 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  11  No more processes
	      A	 fork(2V) failed because the system's process table is full or
	      the user is not allowed to create	any more processes, or a  sys-
	      tem call failed because of insufficient resources.

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

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

       EBADMSG	76  Not	a data message
	      During a read(2V), getmsg(2), or ioctl(2)	I_RECVFD  system  call
	      to a STREAMS device, something has come to the head of the queue
	      that cannot be processed.	 That something	depends	on the	system
	      call
		     read(2V)  control	information  or	a passed file descrip-
			       tor.
		     getmsg(2) passed file descriptor.
		     ioctl(2)  control or data information.

       EBUSY  16  Device busy
	      An attempt was made to mount a  file  system  that  was  already
	      mounted  or  an  attempt	was  made to dismount a	file system on
	      which there is an	active file (open file,	mapped	file,  current
	      directory, or mounted-on directory).

       ECHILD  10  No children
	      A	 wait(2V)  was	executed  by a process that had	no existing or
	      unwaited-for child processes.

       ECOMM  85  Communication	error on send
	      An attempt was made to send messages to a	remote machine when no
	      virtual circuit could be found.  This error is RFS specific.

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

       ECONNREFUSED  61	 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  54  Connection reset	by peer
	      A	 connection  was  forcibly  closed  by	a  peer. This normally
	      results from the peer executing a	shutdown(2) call.

       EDEADLK	78  Deadlock situation detected/avoided
	      An attempt was made to lock a system resource  that  would  have
	      resulted in a deadlock situation.

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

       EDOM  33	 Math argument
	      The  argument of a function in the math library (as described in
	      section 3M) is out of the	domain of the function.

       EDQUOT  69  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.

       EEXIST  17  File	exists
	      An existing file was mentioned in	an inappropriate context,  for
	      example, link(2V).

       EFAULT  14  Bad address
	      The  system encountered a	hardware fault in attempting to	access
	      the arguments of a system	call.

       EFBIG  27  File too large
	      The size of a file exceeded the maximum file size	(1,082,201,088
	      bytes).

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

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

       EIDRM  77  Identifier removed
	      This error is returned to	processes that resume execution	due to
	      the removal of an	identifier from	the

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

       EINTR  4	 Interrupted system call
	      An  asynchronous	signal	(such  as  interrupt or	quit) that the
	      process 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 sys-
	      tem call returned	this error condition.

       EINVAL  22  Invalid argument
	      A	 system	 call  was made	with an	invalid	argument; for example,
	      dismounting a non-mounted	file  system,  mentioning  an  unknown
	      signal  in  sigvec()  or	kill(),	 reading or writing a file for
	      which lseek() has	generated a negative pointer,  or  some	 other
	      argument	inappropriate  for  the	 call.	Also set by math func-
	      tions, see intro(3).

       EIO  5  I/O error
	      Some physical I/O	error occurred.	 This error may	in some	 cases
	      occur  on	a call following the one to which it actually applies.

       EISCONN	56  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  21  Is a	directory
	      An attempt was made to write on a	directory.

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

       EMFILE  24  Too many open files
	      A	process	tried to have more open	files than the system allows a
	      process  to  have.   The customary configuration limit is	64 per
	      process.

       EMLINK  31  Too many links
	      An attempt was made to make more than  32767  hard  links	 to  a
	      file.

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

       EMULTIHOP  87  Multihop attempted
	      An attempt was made to access remote  resources  which  are  not
	      directly accessible.  This error is RFS specific.

       ENAMETOOLONG  63	 File name too long
	      A	component of a path name exceeded 255 characters, or an	entire
	      path name	exceeded 1024 characters.

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

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

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

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

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

       ENODEV  19  No such device
	      An attempt was made to apply an inappropriate system call	 to  a
	      device  (for example, an attempt to read a write-only device) or
	      an attempt was made to use a device not configured by  the  sys-
	      tem.

       ENOENT  2  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.

       ENOEXEC	8  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  num-
	      ber (see a.out(5)).

       ENOLCK  79  No locks available
	      A	 system-imposed	 limit	on the number of simultaneous file and
	      record locks was reached and no  more  were  available  at  that
	      time.

       ENOLINK	82  Link has be	severed
	      The  link	 (virtual  circuit)  connecting	to a remote machine is
	      gone.  This error	is RFS specific.

       ENOMEM  12  Not enough memory
	      During an	execve(2V), sbrk(), or brk(2), a program asks for more
	      address  space  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 address
	      space is not a temporary condition.  The	maximum	 size  of  the
	      text, data, and stack segments is	a system parameter.  Soft lim-
	      its may be increased to their corresponding hard limits.

       ENOMSG  75  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).

       ENONET  80  Machine is not on the network
	      A	 attempt was made to advertise,	unadvertise, mount, or unmount
	      remote resources while the  machine  has	not  done  the	proper
	      startup  to  connect  to the network.  This error	is Remote File
	      Sharing (RFS) specific.

       ENOPROTOOPT  42	Option not supported by	protocol
	      A	bad option was specified in a  setsockopt()  or	 getsockopt(2)
	      call.

       ENOSPC  28  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.

       ENOSR  74  Out of stream	resources
	      During  a	 STREAMS  open(2V),  either  no	 STREAMS  queues or no
	      STREAMS head data	structures were	available.

       ENOSTR  72  Not a stream	device
	      A	putmsg(2) or getmsg(2) system call was	attempted  on  a  file
	      descriptor that is not a STREAMS device.

       ENOSYS  90  Function not	implemented
	      An  attempt  was made to use a function that is not available in
	      this implementation.

       ENOTBLK	15  Block device required
	      A	file that is not a block device	was mentioned  where  a	 block
	      device was required, for example,	in mount(2V).

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

       ENOTDIR	20  Not	a directory
	      A	non-directory was specified where a directory is required, for
	      example, in a path prefix	or as an argument to chdir(2V).

       ENOTEMPTY  66  Directory	not empty
	      An  attempt  was	made  to remove	a directory with entries other
	      than `&.'	 and `&.|.'  by	performing a rmdir() system call or  a
	      rename() system call with	that directory specified as the	target
	      directory.

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

       ENOTTY  25  Inappropriate ioctl for device
	      The code used in an ioctl() call is not supported	by the	object
	      that the file descriptor in the call refers to.

       ENXIO  6	 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 on-line or	no disk	pack is	loaded
	      on a drive.

       EOPNOTSUPP  45  Operation not supported on socket
	      For example, trying to accept a connection on a datagram socket.

       EPERM  1	 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.

       EPFNOSUPPORT  46	 Protocol family not supported
	      The protocol family has not been configured into the  system  or
	      no implementation	for it exists.

       EPIPE  32  Broken pipe
	      An attempt was made to write on a	pipe or	socket for which there
	      is no process to read the	data.  This condition normally	gener-
	      ates  a signal; the error	is returned if the signal is caught or
	      ignored.

       EPROTO  86  Protocol error
	      Some protocol error occurred.  This error	 is  device  specific,
	      but is generally not related to a	hardware failure.

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

       EPROTOTYPE  41  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.

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

       EREMOTE	71  Too	many levels of remote in path
	      An  attempt was made to remotely mount a file system into	a path
	      that already has a remotely mounted component.

       EROFS  30  Read-only file system
	      An attempt to modify a file or directory was made	on a file sys-
	      tem mounted read-only.

       ERREMOTE	 81  Object is remote
	      An attempte was made to advertise	a resource which is not	on the
	      local machine, or	to mount/unmount a device (or  pathname)  that
	      is on a remote machine.  This error is RFS specific.

       ESHUTDOWN  58  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.

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

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

       ESRCH  3	 No such process
	      The process or process group whose number	 was  given  does  not
	      exist, or	any such process is already dead.

       ESRMNT  84  Srmount error
	      An  attempt was made to stop RFS while there are resources still
	      mounted by remote	machines.  This	error is RFS specific.

       ESTALE  70  Stale NFS file handle
	      An NFS client referenced a file that it had opened but that  had
	      since been deleted.

       ETIME  73  Timer	expired
	      The  timer  set  for  a  STREAMS ioctl(2)	call has expired.  The
	      cause of this error is device specific and could indicate	either
	      a	 hardware or software failure, or perhaps a timeout value that
	      is too short for the specific  operation.	  The  status  of  the
	      ioctl(2) operation is indeterminate.

       ETIMEDOUT  60  Connection timed out
	      A	 connect request or an NFS request failed because the party to
	      which the	request	was made did  not  properly  respond  after  a
	      period  of time.	(The timeout period is dependent on the	commu-
	      nication protocol.)

       ETXTBSY	26  Text file busy
	      An attempt was made to execute a pure-procedure program that  is
	      currently	 open  for writing, or an attempt was made to open for
	      writing a	pure-procedure program that is being executed.

       EUSERS  68  Too many users
	      An operation to read disk	quota information for the user	failed
	      because the system quota table was full.

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

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

       unused  0

SEE ALSO
       brk(2),	chdir(2V),   chmod(2V),	  connect(2),	dup(2V),   execve(2V),
       exit(2V),  fork(2V),  getmsg(2),	 getsockopt(2),	 ioctl(2),  killpg(2),
       link(2V),  mount(2V),   msgctl(2),   msgget(2),	 msgop(2),   open(2V),
       pipe(2V), putmsg(2), read(2V), semctl(2), semget(2), semop(2), getsock-
       opt(2),	shmctl(2),  shmget(2),	 shmop(2),   shutdown(2),   sigvec(2),
       socket(2),  socketpair(2), wait(2V), csh(1), sh(1), intro(3), perror(3)
       termio(4), a.out(5)

LIST OF	SYSTEM CALLS
       Name Appears on Page Description

				21 January 1990			      INTRO(2)

NAME | SYNOPSIS | DESCRIPTION | SYSTEM PARAMETERS | DEFINITIONS | STREAMS | SYSTEM V IPC | ERROR CODES | SEE ALSO | LIST OF SYSTEM CALLS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=intro&sektion=2&manpath=SunOS+4.1.3>

home | help