1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-18 01:02:15 +00:00
PDP-10.its/doc/kcc/calls.intro
Lars Brinkhoff 53f2a2eba9 KCC - C compiler.
Binary-only compiler and library, plus documentation and include files
for compiling new programs.
2017-02-15 19:27:00 +01:00

964 lines
45 KiB
Plaintext
Executable File

From Sun Release 3.2 Last change: 16 July 1986
Liberated 4/15/88 by ALAN
INTRO(2) SYSTEM CALLS INTRO(2)
NAME
intro - introduction to system calls and error numbers
SYNOPSIS
#include <errno.h>
DESCRIPTION
This section describes all of the system calls. A "(2V)"
heading indicates that the system call performs differently
when called from programs that use the System V libraries
(programs compiled using /usr/5bin/cc). On these pages,
both the regular behavior and the System V behavior is
described.
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.
Each system call description attempts to list all possible
error numbers. The following is a complete list of the
errors and their names as given in <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 ordi-
nary users to do things allowed only to the super-user.
2 ENOENT No such file or directory
This error occurs when a filename is specified and the
file should exist but doesn't, or when one of the
directories in a pathname 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),
which 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. 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 which 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 a disk pack is not loaded on a drive.
7 E2BIG Arg list too long
An argument list longer than 10240 bytes is presented
to execve.
8 ENOEXEC Exec format error
A request is made to execute a file which, although it
has the appropriate permissions, does not start with a
valid magic number (see a.out(5)).
9 EBADF Bad file number
Either a file descriptor refers to no open file, or a
read (respectively, write) request is made to a file
which is open only for writing (respectively, reading).
10 ECHILD No children
A wait was executed by a process that had no existing
or unwaited-for child processes.
11 EAGAIN No more processes
A fork failed because 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, brk, or sbrk, 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.
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 file which is not a block device was mentioned where
a block device was required, for example, in mount.
16 EBUSY Device busy
An attempt to mount a file system that was already
mounted or an attempt was made to dismount a file sys-
tem on which there is an active file (open file,
current directory, mounted-on file, or active text seg-
ment).
17 EEXIST File exists
An existing file was mentioned in an inappropriate con-
text, for example, link.
18 EXDEV Cross-device link
A hard link to a file on another file system was
attempted.
19 ENODEV 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 dev-
ice not configured by the system.
20 ENOTDIR Not a directory
A non-directory was specified where a directory is
required, for example, in a pathname or as an argument
to chdir.
21 EISDIR Is a directory
An attempt was made to write on a directory.
22 EINVAL Invalid argument
A system call was made with an invalid argument; for
example, dismounting a non-mounted file system, men-
tioning 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).
23 ENFILE File table overflow
The system's table of open files is full, and tem-
porarily no more opens can be accepted.
24 EMFILE 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 30 per process.
25 ENOTTY 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.
26 ETXTBSY Text file busy
An attempt to execute a pure-procedure program which is
currently open for writing. Also an attempt to open
for writing a pure-procedure program that is being exe-
cuted.
27 EFBIG File too large
The size of a file exceeded the maximum file size
(1,082,201,088 bytes).
28 ENOSPC No space left on device
A write to an ordinary file, the creation of a direc-
tory 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
file system mounted read-only.
31 EMLINK Too many links
An attempt to make more than 32767 hard links to a
file.
32 EPIPE Broken pipe
An attempt was made to write on a pipe or socket for
which there is no process to read the data. This con-
dition normally generates a signal; the error is
returned if the signal is caught or ignored.
33 EDOM Math argument
The argument of a function in the math library (as
described in section 3M) is out of the domain of the
function.
34 ERANGE Result too large
The value of a function in the math library (as
described in section 3M) is unrepresentable within
machine precision.
35 EWOULDBLOCK Operation would block
An operation which would cause a process to block was
attempted on an object in non-blocking mode (see
ioctl(2)).
36 EINPROGRESS Operation now in progress
An operation which takes a long time to complete (such
as a connect(2)) was attempted on a non-blocking object
(see ioctl(2)).
37 EALREADY Operation already in progress
An operation was attempted on a non-blocking object
which 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.
41 EPROTOTYPE Protocol wrong type for socket
A protocol was specified which 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 was specified in a getsockopt(2) or set-
sockopt(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 PUP Internet addresses with ARPA Inter-
net 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 net-
work.
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 nor-
mally results from the peer executing a shutdown(2)
call.
55 ENOBUFS No buffer space available
An operation on a socket or pipe was not performed
because the system lacked sufficient buffer space.
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 other than the connected
party.
57 ENOTCONN Socket is not connected
An request to send or receive data was disallowed
because the socket is not connected.
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 request failed because the connected party
did not properly respond after a period of time. (The
timeout period is dependent on the communication proto-
col.)
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 which is inactive on the
foreign host.
62 ELOOP Too many levels of symbolic links
A pathname lookup involved more than 8 symbolic links.
63 ENAMETOOLONG File name too long
A component of a pathname exceeded 255 characters, or
an entire pathname exceeded 1023 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
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.
67 unused
68 unused
69 EDQUOT Disc quota exceeded
A write to an ordinary file, the creation of a direc-
tory 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.
70 ESTALE Stale NFS file handle
A client referenced a an open file, when the file has
been deleted.
71 EREMOTE Too many levels of remote in path
An attempt was made to remotely mount a file system
into a path which already has a remotely mounted com-
ponent.
72 unused
73 unused
74 unused
75 ENOMSG 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).
76 unused
77 EIDRM Identifier removed
This error is returned to processes that resume execu-
tion due to the removal of an identifier from the IPC
system's name space (see msgctl(2), semctl(2), and
shmctl(2)).
DEFINITIONS
Descriptor
An integer assigned by the system when a file is referenced
by open(2V), dup(2), or pipe(2) or a socket is referenced by
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.
Directory
A directory is a special type of file which contains entries
which 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 respec-
tively. 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 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 of 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''.
File Access Permissions
Every file in the file system has a set of access permis-
sions. 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.
File Name
Names consisting of up to 255 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 filenames because of the special meaning attached to
these characters by the shell. See sh(1). Although permit-
ted, it is advisable to avoid the use of unprintable charac-
ters in filenames.
Message Queue Identifier
A message queue identifier (msqid) is a unique positive
integer created by a msgget(2) system call. Each msqid has
a message queue and a data structure associated with it.
The data structure is referred to as msqid_ds and contains
the following members:
struct ipc_perm msg_perm; /* operation permission struct */
ushort msg_qnum; /* number of msgs on q */
ushort msg_qbytes; /* max number of bytes on q */
ushort msg_lspid; /* pid of last msgsnd operation */
ushort msg_lrpid; /* pid of last msgrcv operation */
time_t msg_stime; /* last msgsnd time */
time_t msg_rtime; /* last msgrcv time */
time_t msg_ctime; /* last change time */
/* Times measured in secs since */
/* 00:00:00 GMT, Jan. 1, 1970 */
msg_perm is an ipc_perm structure that specifies the message
operation permission (see below). This structure includes
the following members:
ushort cuid; /* creator user id */
ushort cgid; /* creator group id */
ushort uid; /* user id */
ushort gid; /* group id */
ushort mode; /* r/w permission */
msg_qnum is the number of messages currently on the queue.
msg_qbytes is the maximum number of bytes allowed on the
queue. msg_lspid is the process id of the last process that
performed a msgsnd operation. msg_lrpid is the process id
of the last process that performed a msgrcv operation.
msg_stime is the time of the last msgsnd operation,
msg_rtime is the time of the last msgrcv operation, and
msg_ctime is the time of the last msgctl(2) operation that
changed a member of the above structure.
Message Operation Permissions
In the msgop(2) and msgctl(2) system call descriptions, the
permission required for an operation is given as "{token}",
where "token" is the type of permission needed interpreted
as follows:
00400 Read by user
00200 Write by user
00060 Read, Write by group
00006 Read, Write by others
Read and Write permissions on a msqid are granted to a pro-
cess if one or more of the following are true:
The effective user ID of the process is super-user.
The effective user ID of the process matches
msg_perm.[c]uid in the data structure associated with
msqid and the appropriate bit of the ``user'' portion
(0600) of msg_perm.mode is set.
The effective user ID of the process does not match
msg_perm.[c]uid and the effective group ID of the pro-
cess matches msg_perm.[c]gid and the appropriate bit of
the ``group'' portion (060) of msg_perm.mode is set.
The effective user ID of the process does not match
msg_perm.[c]uid and the effective group ID of the pro-
cess does not match msg_perm.[c]gid and the appropriate
bit of the ``other'' portion (06) of msg_perm.mode is
set.
Otherwise, the corresponding permissions are denied.
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.
Path Name and Path Prefix
A pathname is a null-terminated character string starting
with an optional slash (/), followed by zero or more direc-
tory names separated by slashes, optionally followed by a
filename. The total length of a pathname must be less than
{MAXPATHLEN} (1024) characters.
More precisely, a pathname 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 255 characters other
than the ASCII slash and null, and <dirname> is a string of
1 to 255 characters (other than the ASCII slash and null)
that names a directory.
If a pathname 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 pathname also refers to the current directory. How-
ever, this is not true of all UNIX systems. (On such sys-
tems, accidental use of a null pathname in routines that
don't check for it may corrupt the current working direc-
tory.) 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 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).
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.
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 imple-
menting 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 pro-
cess which 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. A process's root directory
need not be the root directory of the root file system.
Semaphore Identifier
A semaphore identifier (semid) is a unique positive integer
created by a semget(2) system call. Each semid has a set of
semaphores and a data structure associated with it. The
data structure is referred to as semid_ds and contains the
following members:
struct ipc_perm sem_perm; /* operation permission struct */
ushort sem_nsems; /* number of sems in set */
time_t sem_otime; /* last operation time */
time_t sem_ctime; /* last change time */
/* Times measured in secs since */
/* 00:00:00 GMT, Jan. 1, 1970 */
sem_perm is an ipc_perm structure that specifies the sema-
phore operation permission (see below). This structure
includes the following members:
ushort cuid; /* creator user id */
ushort cgid; /* creator group id */
ushort uid; /* user id */
ushort gid; /* group id */
ushort mode; /* r/a permission */
The value of sem_nsems is equal to the number of semaphores
in the set. Each semaphore in the set is referenced by a
positive integer referred to as a sem_num. sem_num values
run sequentially from 0 to the value of sem_nsems minus 1.
sem_otime is the time of the last semop(2) operation, and
sem_ctime is the time of the last semctl(2) operation that
changed a member of the above structure.
A semaphore is a data structure that contains the following
members:
ushort semval; /* semaphore value */
short sempid; /* pid of last operation */
ushort semncnt; /* # awaiting semval > cval */
ushort semzcnt; /* # awaiting semval = 0 */
semval is a non-negative integer. sempid is equal to the
process ID of the last process that performed a semaphore
operation on this semaphore. semncnt is a count of the
number of processes that are currently suspended awaiting
this semaphore's semval to become greater than its current
value. semzcnt is a count of the number of processes that
are currently suspended awaiting this semaphore's semval to
become zero.
Semaphore Operation Permissions
In the semop(2) and semctl(2) system call descriptions, the
permission required for an operation is given as "{token}",
where "token" is the type of permission needed interpreted
as follows:
00400 Read by user
00200 Alter by user
00060 Read, Alter by group
00006 Read, Alter by others
Read and Alter permissions on a semid are granted to a pro-
cess if one or more of the following are true:
The effective user ID of the process is super-user.
The effective user ID of the process matches
sem_perm.[c]uid in the data structure associated with
semid and the appropriate bit of the ``user'' portion
(0600) of sem_perm.mode is set.
The effective user ID of the process does not match
sem_perm.[c]uid and the effective group ID of the pro-
cess matches sem_perm.[c]gid and the appropriate bit of
the ``group'' portion (060) of sem_perm.mode is set.
The effective user ID of the process does not match
sem_perm.[c]uid and the effective group ID of the pro-
cess does not match sem_perm.[c]gid and the appropriate
bit of the ``other'' portion (06) of sem_perm.mode is
set.
Otherwise, the corresponding permissions are denied.
Shared Memory Identifier
A shared memory identifier (shmid) is a unique positive
integer created by a shmget(2) system call. Each shmid has
a segment of memory (referred to as a shared memory segment)
and a data structure associated with it. The data structure
is referred to as shmid_ds and contains the following
members:
struct ipc_perm shm_perm; /* operation permission struct */
int shm_segsz; /* size of segment */
ushort shm_cpid; /* creator pid */
ushort shm_lpid; /* pid of last operation */
short shm_nattch; /* number of current attaches */
time_t shm_atime; /* last attach time */
time_t shm_dtime; /* last detach time */
time_t shm_ctime; /* last change time */
/* Times measured in secs since */
/* 00:00:00 GMT, Jan. 1, 1970 */
shm_perm is an ipc_perm structure that specifies the shared
memory operation permission (see below). This structure
includes the following members:
ushort cuid; /* creator user id */
ushort cgid; /* creator group id */
ushort uid; /* user id */
ushort gid; /* group id */
ushort mode; /* r/w permission */
shm_segsz specifies the size of the shared memory segment.
shm_cpid is the process id of the process that created the
shared memory identifier. shm_lpid is the process id of the
last process that performed a shmop(2) operation.
shm_nattch is the number of processes that currently have
this segment attached. shm_atime is the time of the last
shmat operation, shm_dtime is the time of the last shmdt
operation, and shm_ctime is the time of the last shmctl(2)
operation that changed one of the members of the above
structure.
Shared Memory Operation Permissions
In the shmop(2) and shmctl(2) system call descriptions, the
permission required for an operation is given as "{token}",
where "token" is the type of permission needed interpreted
as follows:
00400 Read by user
00200 Write by user
00060 Read, Write by group
00006 Read, Write by others
Read and Write permissions on a shmid are granted to a pro-
cess if one or more of the following are true:
The effective user ID of the process is super-user.
The effective user ID of the process matches
shm_perm.[c]uid in the data structure associated with
shmid and the appropriate bit of the ``user'' portion
(0600) of shm_perm.mode is set.
The effective user ID of the process does not match
shm_perm.[c]uid and the effective group ID of the pro-
cess matches shm_perm.[c]gid and the appropriate bit of
the ``group'' portion (060) of shm_perm.mode is set.
The effective user ID of the process does not match
shm_perm.[c]uid and the effective group ID of the pro-
cess does not match shm_perm.[c]gid and the appropriate
bit of the ``other'' portion (06) of shm_perm.mode is
set.
Otherwise, the corresponding permissions are 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 proper-
ties. 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 spe-
cial. Process 0 is the scheduler. Process 1 is the ini-
tialization 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 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)).
SEE ALSO
intro(3), perror(3)
LIST OF SYSTEM CALLS
Name Appears on Page Description
_exit exit(2) terminate a process
accept accept(2) accept a connection on a socket
access access(2) determine accessibility of file
acct acct(2) turn accounting on or off
adjtime adjtime(2) correct the time to allow synchronization of the system clock
async_daemon nfssvc(2) NFS daemons
bind bind(2) bind a name to a socket
brk brk(2) change data segment size
chdir chdir(2) change current working directory
chmod chmod(2) change mode of file
chown chown(2) change owner and group of a file
chroot chroot(2) change root directory
close close(2) delete a descriptor
connect connetc(2) initiate a connection on a socket
creat creat(2) create a new file
dup dup(2) duplicate a descriptor
dup2 dup(2) duplicate a descriptor
execve execve(2) execute a file
fchmod chmod(2) change mode of file
fchown chown(2) change owner and group of a file
fcntl fcntl(2) file control
flock flock(2) apply or remove an advisory lock on an open file
fork fork(2) create a new process
fstat stat(2) get file status
fsync fsync(2) synchronize a file's in-core state with that on disk
ftruncate truncate(2) truncate a file to a specified length
getdirentries getdirentries(2) gets directory entries in a filesystem independent format
getdomainname getdomainname(2) get name of current domain
getdtablesize getdtablesize(2) get descriptor table size
getegid getgid(2) get group identity
geteuid getuid(2) get effective user identity
getgid getgid(2) get group identity
getgroups getgroups(2) get group access list
gethostid gethostid(2) get unique identifier of current host
gethostname gethostname(2) get name of current host
getitimer getitimer(2) get value of interval timer
getpagesize getpagesizename(2) get system page size
getpeername getpeername(2) get name of connected peer
getpgrp setpgrp(2V) set and/or return the process group of a process
getpid getpid(2) get parent process identification
getppid getpid(2) get process identification
getpriority getpriority(2) get program scheduling priority
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 options on sockets
gettimeofday gettimeofday(2) get date and time
getuid getuid(2) get user identity
ioctl ioctl(2) control device
kill kill(2) send signal to a process
killpg killpg(2) send signal to a process group
link link(2) make a hard link to a file
listen listen(2) listen for connections on a socket
lseek lseek(2) move read/write pointer
lstat stat(2) get file status
mkdir mkdir(2) make a directory file
mknod mknod(2) make a special file
mmap mmap(2) map or unmap pages of memory
mount mount(2) mount file system
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
munmap munmap(2) map or unmap pages of memory
nfssvc nfssvc(2) NFS daemons
open open(2V) open or create a file for reading or writing
pipe pipe(2) create an interprocess communication channel
profil profil(2) execution time profile
ptrace ptrace(2) process trace
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(2) change the name of a file
rmdir rmdir(2) 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
setdomainname getdomainname(2) set name of current domain
setgroups getgroups(2) set group access list
sethostname gethostname(2) set name of current host
setitimer getitimer(2) set value of interval timer
setpgrp setpgrp(2V) set and/or return the process group of a process
setpriority getpriority(2) set program scheduling priority
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
setsockopt getsockopt(2) set options on sockets
settimeofday gettimeofday(2) set date and time
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
shmop shmop(2) shared memory operations
shutdown shutdown(2) shut down part of a full-duplex connection
sigblock sigblock(2) block signals
sigpause sigpause(2) atomically release blocked signals and wait for interrupt
sigsetmask sigsetmask(2) set current signal mask
sigstack sigstack(2) set and/or get signal stack context
sigvec sigvec(2) software signal facilities
socket socket(2) create an endpoint for communication
socketpair socketpair(2) create a pair of connected sockets
stat stat(2) 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
tell lseek(2) locate read/write pointer
truncate truncate(2) truncate a file to a specified length
umask umask(2) set file creation mode mask
uname uname(2V) get name of current UNIX system
unlink unlink(2) remove directory entry
unmount umount(2) remove a file system
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(2) wait for process to terminate or stop
wait3 wait(2) wait for process to terminate or stop
write write(2V) write output
writev write(2V) write output