Manual page for INTRO(2)
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:
- The man page documents System V behavior only.
- 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.
- 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.
Compile 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 messages.
- ERROR CODES
-
A list of system error codes with descriptions.
- LIST OF SYSTEM CALLS
-
A list of all system calls with brief descriptions.
SYSTEM PARAMETERS
Sections 2 and 3 support
a naming convention for those system parameters 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 terminal 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 currently 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 directory 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 (possibly 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 performed 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 permissions allow the access.
Neither the effective user
ID
nor effective group
ID
and supplementary 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
constructed 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 directory.
If a path name begins with a slash, the search begins at the
root
directory.
Otherwise, the search begins at the current working directory.
A slash, by itself, names the root directory.
A dot
(.)
names the current 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 creation 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 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.
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
absolute 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 windows.
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
setsid.2v
Signal
Signals are used for notification of asynchronous events. Signals may
directed to processes, process groups, and other combinations of processes.
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
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.
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 identified
by a positive integer called the tty process group
ID. This grouping 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 services 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 functions 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 hardware 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 output 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
messages
moving
upstream.
Write Queue
In a stream, the
message queue
in a
module
or
driver
containing
messages
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
constructing 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 numbers.
The following is a complete list of the error numbers and their
names as given in
<errno.h>.
- E2BIG 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 3 Permission denied
-
An attempt was made to access a file in a way forbidden
by the protection system.
- EADDRINUSE 8 Address already in use
-
Only one usage of each address is normally permitted.
- EADDRNOTAVAIL 9 Can't assign requested address
-
Normally results from an attempt to create a socket with an
address not on this machine.
- EADV 3 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 7 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 1 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 system call failed because of insufficient resources.
- EALREADY 7 Operation already in progress
-
An operation was attempted on a non-blocking object that already
had an operation in progress.
- EBADF 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 6 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 descriptor.
- getmsg.2
-
passed file descriptor.
- ioctl.2
-
control or data information.
- EBUSY 6 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 0 No children
-
A
wait.2v
was executed by a process that had no existing or
unwaited-for child processes.
- ECOMM 5 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 3 Software caused connection abort
-
A connection abort was caused internal to your host machine.
- ECONNREFUSED 1 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 4 Connection reset by peer
-
A connection was forcibly closed by a peer. This normally
results from the peer executing a
shutdown.2
call.
- EDEADLK 8 Deadlock situation detected/avoided
-
An attempt was made to lock a system resource that would have resulted
in a deadlock situation.
- EDESTADDRREQ 9 Destination address required
-
A required address was omitted from an operation on a socket.
- EDOM 3 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 9 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 7 File exists
-
An existing file was mentioned in an inappropriate context,
for example,
link.2v
- EFAULT 4 Bad address
-
The system encountered a hardware fault in attempting to
access the arguments of a system call.
- EFBIG 7 File too large
-
The size of a file exceeded the maximum file size (1,082,201,088 bytes).
- EHOSTDOWN 4 Host is down
-
A socket operation failed because the destination host was down.
- EHOSTUNREACH 5 Host is unreachable
-
A socket operation was attempted to an unreachable host.
- EIDRM 7 Identifier removed
-
This error is returned to processes that resume execution due to the removal
of an identifier from the
- EINPROGRESS 6 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
ioctl.2
- EINTR 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 system call
returned this error condition.
- EINVAL 2 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 functions,
see
intro.3
- EIO 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 6 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 1 Is a directory
-
An attempt was made to write on a directory.
- ELOOP 2 Too many levels of symbolic links
-
A path name lookup involved more than 20 symbolic links.
- EMFILE 4 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 1 Too many links
-
An attempt was made to make more than 32767 hard links to a file.
- EMSGSIZE 0 Message too long
-
A message sent on a socket was larger than the internal message buffer.
- EMULTIHOP 7 Multihop attempted
-
An attempt was made to
access remote resources which are not directly accessible.
This error is RFS specific.
- ENAMETOOLONG 3 File name too long
-
A component of a path name exceeded 255 characters, or an entire
path name exceeded 1024 characters.
- ENETDOWN 0 Network is down
-
A socket operation encountered a dead network.
- ENETRESET 2 Network dropped connection on reset
-
The host you were connected to crashed and rebooted.
- ENETUNREACH 1 Network is unreachable
-
A socket operation was attempted to an unreachable network.
- ENFILE 3 File table overflow
-
The system's table of open files is full, and temporarily no more
open()
calls can be accepted.
- ENOBUFS 5 No buffer space available
-
An operation on a socket or pipe was not performed because
the system lacked sufficient buffer space.
- ENODEV 9 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 system.
- ENOENT 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 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
- ENOLCK 9 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 2 Link has be severed
-
The link (virtual circuit) connecting to a remote machine is gone.
This error is RFS specific.
- ENOMEM 2 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 limits may be increased to their corresponding hard limits.
- ENOMSG 5 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 0 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 2 Option not supported by protocol
-
A bad option was specified in a
setsockopt()
or
getsockopt.2
call.
- ENOSPC 8 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 4 Out of stream resources
-
During a
STREAMS
open.2v
either no
STREAMS
queues or no
STREAMS
head data structures were available.
- ENOSTR 2 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 0 Function not implemented
-
An attempt was made to use a function that is not available in this
implementation.
- ENOTBLK 5 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 7 Socket is not connected
-
An request to send or receive data was disallowed because
the socket is not connected.
- ENOTDIR 0 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 6 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 8 Socket operation on non-socket
-
Self-explanatory.
- ENOTTY 5 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 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 5 Operation not supported on socket
-
For example, trying to
accept
a connection on a datagram socket.
- 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.
- EPFNOSUPPORT 6 Protocol family not supported
-
The protocol family has not been configured into the
system or no implementation for it exists.
- EPIPE 2 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 generates a signal;
the error is returned if the signal is caught or ignored.
- EPROTO 6 Protocol error
-
Some protocol error occurred. This error
is device specific, but is generally not related
to a hardware failure.
- EPROTONOSUPPORT 3 Protocol not supported
-
The protocol has not been configured into the
system or no implementation for it exists.
- EPROTOTYPE 1 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 4 Result too large
-
The value of a function in the math library (as described in section 3M)
is unrepresentable within machine precision.
- EREMOTE 1 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 0 Read-only file system
-
An attempt to modify a file or directory was made on a file system mounted
read-only.
- ERREMOTE 1 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 8 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 4 Socket type not supported
-
The support for the socket type has not been configured into the
system or no implementation for it exists.
- ESPIPE 9 Illegal seek
-
An
lseek()
was issued to a socket or pipe.
This error may also be issued for
other non-seekable devices.
- ESRCH No such process
-
The process or process group whose number was given
does not exist, or any such process is already dead.
- ESRMNT 4 Srmount error
-
An attempt was made to stop
RFS while there are resources still mounted by remote machines.
This error is RFS specific.
- ESTALE 0 Stale NFS file handle
-
An
NFS
client referenced a file that it had opened but that had since been
deleted.
- ETIME 3 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 0 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 communication protocol.)
- ETXTBSY 6 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 8 Too many users
-
An operation to read disk quota information for the user failed
because the system quota table was full.
- EWOULDBLOCK 5 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 8 Cross-device link
-
A hard link to a file on another file system was attempted.
- unused
-
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
getsockopt.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
accept accept(2) accept a connection on a socket
access access(2V) determine accessibility of file
acct acct(2V) turn accounting on or off
adjtime adjtime(2) correct the time to allow synchronization of the system clock
async_daemon nfssvc(2) NFS daemons
audit audit(2) write a record to the audit log
auditon auditon(2) manipulate auditing
auditsvc auditsvc(2) write audit records to specified file descriptor
bind bind(2) bind a name to a socket
brk brk(2) change data segment size
chdir chdir(2V) change current working directory
chmod chmod(2V) change mode of file
chown chown(2V) change owner and group of a file
chroot chroot(2) change root directory
close close(2V) delete a descriptor
connect connect(2) initiate a connection on a socket
creat creat(2V) create a new file
dup dup(2V) duplicate a descriptor
dup2 dup(2V) duplicate a descriptor
execve execve(2V) execute a file
_exit exit(2V) terminate a process
fchmod chmod(2V) change mode of file
fchown chown(2V) change owner and group of a file
fcntl fcntl(2V) file control
flock flock(2) apply or remove an advisory lock on an open file
fork fork(2V) create a new process
fpathconf pathconf(2V) query file system related limits and options
fstat stat(2V) get file status
fstatfs statfs(2) get file system statistics
fsync fsync(2) synchronize a file's in-core state with that on disk
ftruncate truncate(2) set a file to a specified length
getauid getauid(2) get and set user audit identity
getdents getdents(2) gets directory entries in a filesystem independent format
getdirentries getdirentries(2) gets directory entries in a filesystem independent format
getdomainname getdomainname(2) get/set name of current domain
getdtablesize getdtablesize(2) get descriptor table size
getegid getgid(2V) get group identity
geteuid getuid(2V) get user identity
getgid getgid(2V) get group identity
getgroups getgroups(2V) get or set supplementary group IDs
gethostid gethostid(2) get unique identifier of current host
gethostname gethostname(2) get/set name of current host
getitimer getitimer(2) get/set value of interval timer
getmsg getmsg(2) get next message from a stream
getpagesize getpagesize(2) get system page size
getpeername getpeername(2) get name of connected peer
getpgrp getpgrp(2V) return or set the process group of a process
getpid getpid(2V) get process identification
getppid getpid(2V) get process identification
getpriority getpriority(2) get/set process nice value
getrlimit getrlimit(2) control maximum system resource consumption
getrusage getrusage(2) get information about resource utilization
getsockname getsockname(2) get socket name
getsockopt getsockopt(2) get and set options on sockets
gettimeofday gettimeofday(2) get or set the date and time
getuid getuid(2V) get user identity
ioctl ioctl(2) control device
kill kill(2V) send a signal to a process or a group of processes
killpg killpg(2) send signal to a process group
link link(2V) make a hard link to a file
listen listen(2) listen for connections on a socket
lseek lseek(2V) move read/write pointer
lstat stat(2V) get file status
mctl mctl(2) memory management control
mincore mincore(2) determine residency of memory pages
mkdir mkdir(2V) make a directory file
mkfifo mknod(2V) make a special file
mknod mknod(2V) make a special file
mmap mmap(2) map pages of memory
mount mount(2V) mount file system
mprotect mprotect(2) set protection of memory mapping
msgctl msgctl(2) message control operations
msgget msgget(2) get message queue
msgop msgop(2) message operations
msgrcv msgop(2) message operations
msgsnd msgop(2) message operations
msync msync(2) synchronize memory with physical storage
munmap munmap(2) unmap pages of memory.
nfssvc nfssvc(2) NFS daemons
open open(2V) open or create a file for reading or writing
pathconf pathconf(2V) query file system related limits and options
pipe pipe(2V) create an interprocess communication channel
poll poll(2) I/O multiplexing
profil profil(2) execution time profile
ptrace ptrace(2) process trace
putmsg putmsg(2) send a message on a stream
quotactl quotactl(2) manipulate disk quotas
read read(2V) read input
readlink readlink(2) read value of a symbolic link
readv read(2V) read input
reboot reboot(2) reboot system or halt processor
recv recv(2) receive a message from a socket
recvfrom recv(2) receive a message from a socket
recvmsg recv(2) receive a message from a socket
rename rename(2V) change the name of a file
rmdir rmdir(2V) remove a directory file
sbrk brk(2) change data segment size
select select(2) synchronous I/O multiplexing
semctl semctl(2) semaphore control operations
semget semget(2) get set of semaphores
semop semop(2) semaphore operations
send send(2) send a message from a socket
sendmsg send(2) send a message from a socket
sendto send(2) send a message from a socket
setaudit setuseraudit(2) set the audit classes for a specified user ID
setauid getauid(2) get and set user audit identity
setdomainname getdomainname(2) get/set name of current domain
setgroups getgroups(2V) get or set supplementary group IDs
sethostname gethostname(2) get/set name of current host
setitimer getitimer(2) get/set value of interval timer
setpgid setpgid(2V) set process group ID for job control
setpgrp getpgrp(2V) return or set the process group of a process
setpriority getpriority(2) get/set process nice value
setregid setregid(2) set real and effective group IDs
setreuid setreuid(2) set real and effective user IDs
setrlimit getrlimit(2) control maximum system resource consumption
setsid setsid(2V) create session and set process group ID
setsockopt getsockopt(2) get and set options on sockets
settimeofday gettimeofday(2) get or set the date and time
setuseraudit setuseraudit(2) set the audit classes for a specified user ID
sgetl sputl(2) access long integer data in a machine-independent fashion
shmat shmop(2) shared memory operations
shmctl shmctl(2) shared memory control operations
shmdt shmop(2) shared memory operations
shmget shmget(2) get shared memory segment identifier
shmop shmop(2) shared memory operations
shutdown shutdown(2) shut down part of a full-duplex connection
sigblock sigblock(2) block signals
sigmask sigblock(2) block signals
sigpause sigpause(2V) automatically release blocked signals and wait for interrupt
sigpending sigpending(2V) examine pending signals
sigprocmask sigprocmask(2V) examine and change blocked signals
sigsetmask sigsetmask(2) set current signal mask
sigstack sigstack(2) set and/or get signal stack context
sigsuspend sigpause(2V) automatically release blocked signals and wait for interrupt
sigvec sigvec(2) software signal facilities
socket socket(2) create an endpoint for communication
socketpair socketpair(2) create a pair of connected sockets
sputl sputl(2) access long integer data in a machine-independent fashion
stat stat(2V) get file status
statfs statfs(2) get file system statistics
swapon swapon(2) add a swap device for interleaved paging/swapping
symlink symlink(2) make symbolic link to a file
sync sync(2) update super-block
syscall syscall(2) indirect system call
sysconf sysconf(2V) query system related limits, values, options
tell lseek(2V) move read/write pointer
truncate truncate(2) set a file to a specified length
umask umask(2V) set file creation mode mask
umount unmount(2V) remove a file system
uname uname(2V) get information about current system
unlink unlink(2V) remove directory entry
unmount unmount(2V) remove a file system
ustat ustat(2) get file system statistics
utimes utimes(2) set file times
vadvise vadvise(2) give advice to paging system
vfork vfork(2) spawn new process in a virtual memory efficient way
vhangup vhangup(2) virtually ``hangup'' the current control terminal
wait wait(2V) wait for process to terminate or stop, examine returned status
wait3 wait(2V) wait for process to terminate or stop, examine returned status
wait4 wait(2V) wait for process to terminate or stop, examine returned status
waitpid wait(2V) wait for process to terminate or stop, examine returned status
WEXITSTATUS wait(2V) wait for process to terminate or stop, examine returned status
WIFEXITED wait(2V) wait for process to terminate or stop, examine returned status
WIFSIGNALED wait(2V) wait for process to terminate or stop, examine returned status
WIFSTOPPED wait(2V) wait for process to terminate or stop, examine returned status
write write(2V) write output
writev write(2V) write output
WSTOPSIG wait(2V) wait for process to terminate or stop, examine returned status
WTERMSIG wait(2V) wait for process to terminate or stop, examine returned status
Created by unroff & hp-tools.
© somebody (See intro for details). All Rights Reserved.
Last modified 11/5/97