add directory Minix
This commit is contained in:
531
Minix/CD-ROM-2.0/MINIX/MANUALS/CAT2/INTRO.2
Normal file
531
Minix/CD-ROM-2.0/MINIX/MANUALS/CAT2/INTRO.2
Normal file
@@ -0,0 +1,531 @@
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
NAME
|
||||
intro, errno - introduction to system calls and error numbers
|
||||
|
||||
SYNOPSIS
|
||||
#include <errno.h>
|
||||
|
||||
DESCRIPTION
|
||||
This section describes all of the system calls. Most of these calls have
|
||||
one or more error returns. An error condition is indicated by an
|
||||
otherwise impossible return value. This is almost always -1; the
|
||||
individual descriptions specify the details. Note that a number of
|
||||
system calls overload the meanings of these error numbers, and that the
|
||||
meanings must be interpreted according to the type and circumstances of
|
||||
the call.
|
||||
|
||||
As with normal arguments, all return codes and values from functions are
|
||||
of type integer unless otherwise noted. An error number is also made
|
||||
available in the external variable errno, which is not cleared on
|
||||
successful calls. Thus errno should be tested only after an error has
|
||||
occurred.
|
||||
|
||||
The following is a complete list of the errors and their names as given
|
||||
in <sys/errno.h>:
|
||||
|
||||
0 OK Error 0
|
||||
Unused. (The symbol "OK" is only used inside the kernel source.)
|
||||
|
||||
1 EPERM Not owner
|
||||
Typically this error indicates an attempt to modify a file in some way
|
||||
forbidden except to its owner or super-user. It is also returned for
|
||||
attempts by ordinary users to do things allowed only to the super-user.
|
||||
|
||||
2 ENOENT No such file or directory
|
||||
This error occurs when a file name is specified and the file should exist
|
||||
but doesn't, or when one of the directories in a path name does not
|
||||
exist.
|
||||
|
||||
3 ESRCH No such process
|
||||
The process or process group whose number was given does not exist, or
|
||||
any such process is already dead.
|
||||
|
||||
4 EINTR Interrupted system call
|
||||
An asynchronous signal (such as interrupt or quit) that the user has
|
||||
elected to catch occurred during a system call. If execution is resumed
|
||||
after processing the signal and the system call is not restarted, it will
|
||||
appear as if the interrupted system call returned this error condition.
|
||||
|
||||
5 EIO I/O error
|
||||
Some physical I/O error occurred during an I/O operation, usually read or
|
||||
write. Operations on file descriptors that refer to devices that are
|
||||
|
||||
|
||||
4BSD June 30, 1986 1
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
forcefully taken away or in a bad state will also provoke this error.
|
||||
|
||||
6 ENXIO No such device or address
|
||||
I/O on a special file refers to a subdevice that does not exist, or
|
||||
beyond the limits of the device. It may also occur when, for example, an
|
||||
illegal tape drive unit number is selected or a disk pack is not loaded
|
||||
on a drive.
|
||||
|
||||
7 E2BIG Arg list too long
|
||||
An argument list longer than ARG_MAX bytes is presented to execve.
|
||||
ARG_MAX is set to 4096 bytes for 16-bit Minix, 16384 bytes for 32-bit
|
||||
Minix, and unlimited for Minix-vmd as these systems are released.
|
||||
|
||||
8 ENOEXEC Exec format error
|
||||
A request is made to execute a file that, although it has the appropriate
|
||||
permissions, does not start with a valid magic number, (see a.out(5)).
|
||||
|
||||
9 EBADF Bad file number
|
||||
Either a file descriptor refers to no open file, or a read (resp. write)
|
||||
request is made to a file that is open only for writing (resp. reading).
|
||||
|
||||
10 ECHILD No children
|
||||
Wait and the process has no living or unwaited-for children.
|
||||
|
||||
11 EAGAIN Resource temporarily unavailable
|
||||
In a fork, the system's process table is full or the user is not allowed
|
||||
to create any more processes, otherwise an operation that would cause a
|
||||
process to block was attempted on an object in non-blocking mode (see
|
||||
fcntl(2)).
|
||||
|
||||
12 ENOMEM Not enough core
|
||||
During an execve or brk, a program asks for more (virtual) memory than
|
||||
the system is able to supply, or a process size limit would be exceeded.
|
||||
The maximum size of the data+stack segment is set by the chmem(1)
|
||||
program. For Minix-vmd a small data+stack size is increased to 3
|
||||
megabytes when a program is executed.
|
||||
|
||||
13 EACCES Permission denied
|
||||
An attempt was made to access a file in a way forbidden by the protection
|
||||
system. Also an attempt to open a device for writing that is physically
|
||||
write protected.
|
||||
|
||||
14 EFAULT Bad address
|
||||
An argument of a system call is outside the address space allocated to a
|
||||
process.
|
||||
|
||||
15 ENOTBLK Block device required
|
||||
A plain file was mentioned where a block device was required, e.g., in
|
||||
mount.
|
||||
|
||||
|
||||
|
||||
4BSD June 30, 1986 2
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
16 EBUSY Resource busy
|
||||
An attempt to mount a device that was already mounted or an attempt was
|
||||
made to dismount a device on which there is an active file (open file,
|
||||
current directory, mounted-on file, or active text segment). A request
|
||||
was made to an exclusive access device that was already in use.
|
||||
|
||||
17 EEXIST File exists
|
||||
An existing file was mentioned in an inappropriate context, e.g., link.
|
||||
|
||||
18 EXDEV Cross-device link
|
||||
A hard link to a file on another device was attempted.
|
||||
|
||||
19 ENODEV No such device
|
||||
An attempt was made to access a device that is not configured by the
|
||||
system, i.e., there is no driver for the device.
|
||||
|
||||
20 ENOTDIR Not a directory
|
||||
A non-directory was specified where a directory is required, for example,
|
||||
in a path name or as an argument to chdir.
|
||||
|
||||
21 EISDIR Is a directory
|
||||
An attempt to write on a directory.
|
||||
|
||||
22 EINVAL Invalid argument
|
||||
Some invalid argument: dismounting a non-mounted device, mentioning an
|
||||
unknown signal in signal, or some other argument inappropriate for the
|
||||
call. Also set by math functions, (see math(3)).
|
||||
|
||||
23 ENFILE File table overflow
|
||||
The system's table of open files is full, and temporarily no more opens
|
||||
can be accepted.
|
||||
|
||||
24 EMFILE Too many open files
|
||||
The limit on the number of open files per process, OPEN_MAX, is reached.
|
||||
As released, this limit is 20 for Minix, and 30 for Minix-vmd.
|
||||
|
||||
25 ENOTTY Not a typewriter
|
||||
The file mentioned in an ioctl is not a terminal or one of the devices to
|
||||
which this call applies. (Often seen error from programs with bugs in
|
||||
their error reporting code.)
|
||||
|
||||
26 ETXTBSY Text file busy
|
||||
Attempt to execute a program that is open for writing. Obsolete under
|
||||
Minix.
|
||||
|
||||
27 EFBIG File too large
|
||||
The size of a file exceeded the maximum (little over 64 megabytes for the
|
||||
V2 file system).
|
||||
|
||||
|
||||
|
||||
|
||||
4BSD June 30, 1986 3
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
28 ENOSPC No space left on device
|
||||
A write to an ordinary file, the creation of a directory or symbolic
|
||||
link, or the creation of a directory entry failed because no more disk
|
||||
blocks are available on the file system, or the allocation of an inode
|
||||
for a newly created file failed because no more inodes are available on
|
||||
the file system.
|
||||
|
||||
29 ESPIPE Illegal seek
|
||||
An lseek was issued to a pipe or TCP/IP channel. This error may also be
|
||||
issued for other non-seekable devices.
|
||||
|
||||
30 EROFS Read-only file system
|
||||
An attempt to modify a file or directory was made on a device mounted
|
||||
read-only.
|
||||
|
||||
31 EMLINK Too many links
|
||||
An attempt to make more than a certain number of hard links to a file.
|
||||
The advertized maximum, LINK_MAX, is 127, but Minix-vmd uses a much
|
||||
larger maximum of 32767 for the V2 file system.
|
||||
|
||||
32 EPIPE Broken pipe
|
||||
A write on a pipe or TCP/IP channel for which there is no process to read
|
||||
the data. This condition normally generates the signal SIGPIPE; the
|
||||
error is returned if the signal is caught or ignored.
|
||||
|
||||
33 EDOM Math argument
|
||||
The argument of a function in the math package is out of the domain of
|
||||
the function.
|
||||
|
||||
34 ERANGE Result too large
|
||||
The value of a function in the math package is unrepresentable within
|
||||
machine precision.
|
||||
|
||||
35 EDEADLK Resource deadlock avoided
|
||||
A process attempts to place a blocking lock on a file that is already
|
||||
locked by another process and that process is waiting for the first
|
||||
process to unlock a file that first process already has a lock on. (The
|
||||
classic "lock A, lock B" by process 1, and "lock B, lock A" by process
|
||||
2.)
|
||||
|
||||
36 ENAMETOOLONG File name too long
|
||||
The path name exceeds PATH_MAX characters. PATH_MAX equals 255 as
|
||||
distributed.
|
||||
|
||||
37 ENOLCK No locks available
|
||||
The system's table of active locks is full.
|
||||
|
||||
38 ENOSYS Function not implemented
|
||||
The system call is not supported. Either an old program uses an obsolete
|
||||
call, or a program for a more capable system is run on a less capable
|
||||
|
||||
|
||||
4BSD June 30, 1986 4
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
system.
|
||||
|
||||
39 ENOTEMPTY Directory not empty
|
||||
A directory with entries other than "." and ".." was supplied to a
|
||||
remove directory or rename call.
|
||||
|
||||
40 ELOOP Too many symbolic links
|
||||
A path name lookup involved more than SYMLOOP symbolic links. SYMLOOP
|
||||
equals 8 as distributed. (Minix-vmd)
|
||||
|
||||
50 EPACKSIZE Invalid packet size
|
||||
|
||||
51 EOUTOFBUFS Not enough buffers left
|
||||
|
||||
52 EBADIOCTL Illegal ioctl for device
|
||||
|
||||
53 EBADMODE Bad mode in ioctl
|
||||
|
||||
54 EWOULDBLOCK Would block
|
||||
|
||||
55 EBADDEST Bad destination address
|
||||
|
||||
56 EDSTNOTRCH Destination not reachable
|
||||
|
||||
57 EISCONN Already connected
|
||||
|
||||
58 EADDRINUSE Address in use
|
||||
|
||||
59 ECONNREFUSED Connection refused
|
||||
|
||||
60 ECONNRESET Connection reset
|
||||
|
||||
61 ETIMEDOUT Connection timed out
|
||||
|
||||
62 EURG Urgent data present
|
||||
|
||||
63 ENOURG No urgent data present
|
||||
|
||||
64 ENOTCONN No connection
|
||||
|
||||
65 ESHUTDOWN Already shutdown
|
||||
|
||||
66 ENOCONN No such connection
|
||||
|
||||
67 EINPROGRESS Operation now in progress
|
||||
|
||||
68 EALREADY Operation already in progress
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4BSD June 30, 1986 5
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
DEFINITIONS
|
||||
|
||||
Process ID
|
||||
Each active process in the system is uniquely identified by a
|
||||
positive integer called a process ID. The range of this ID is from
|
||||
1 to 29999. The special process with process ID 1 is init, the
|
||||
ancestor of all processes.
|
||||
|
||||
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, unless the creator dies, then init becomes the parent
|
||||
of the orphaned process.
|
||||
|
||||
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 kill(2)).
|
||||
|
||||
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. (Under standard
|
||||
Minix this is the only group a process can be a member of.)
|
||||
|
||||
All processes have a real user ID and real group ID. These are
|
||||
initialized from the equivalent attributes of the process that
|
||||
created it.
|
||||
|
||||
Effective User Id, Effective Group Id, and Access Groups
|
||||
Access to system resources is governed by three values: the
|
||||
effective user ID, the effective group ID, and the group access
|
||||
list.
|
||||
|
||||
The effective user ID and effective group ID are initially the
|
||||
process's real user ID and real group ID respectively. Either may
|
||||
be modified through execution of a set-user-ID or set-group-ID file
|
||||
(possibly by one its ancestors) (see execve(2)).
|
||||
|
||||
The group access list is an additional set of group ID's used only
|
||||
in determining resource accessibility. Access checks are performed
|
||||
as described below in ``File Access Permissions''. The maximum
|
||||
number of additional group ID's is NGROUPS_MAX. For Minix this is
|
||||
0, but Minix-vmd supports a list of up to 16 additional group ID's.
|
||||
(Also known as ``supplemental'' group ID's.)
|
||||
|
||||
|
||||
4BSD June 30, 1986 6
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
Super-user
|
||||
A process is recognized as a super-user process and is granted
|
||||
special privileges if its effective user ID is 0.
|
||||
|
||||
Descriptor
|
||||
An integer assigned by the system when a file or device is
|
||||
referenced by open(2), dup(2) or fcntl(2) which uniquely identifies
|
||||
an access path to that file or device from a given process or any of
|
||||
its children.
|
||||
|
||||
File Descriptor
|
||||
Older, and often used name for a descriptor.
|
||||
|
||||
File Name
|
||||
Names consisting of up to NAME_MAX characters may be used to name an
|
||||
ordinary file, special file, or directory. NAME_MAX is the maximum
|
||||
of the maximum file name lengths of the supported file systems.
|
||||
Excess characters are ignored when too long file names are used for
|
||||
files in a given file system. The maximum file name length of the
|
||||
V1 and V2 file systems is 14 characters. The Minix-vmd "flex"
|
||||
variants of V1 and V2 have a 60 character maximum.
|
||||
|
||||
The characters in a file name may assume any value representable in
|
||||
eight bits excluding 0 (null) and the ASCII code for / (slash).
|
||||
|
||||
Note that it is generally unwise to use one of \'"<>();~$^&*|{}[]?
|
||||
as part of file names because of the special meaning attached to
|
||||
these characters by the shell.
|
||||
|
||||
Path Name
|
||||
A path name is a null-terminated character string starting with an
|
||||
optional slash (/), followed by zero or more directory names
|
||||
separated by slashes, optionally followed by a file name. The total
|
||||
length of a path name must be less than PATH_MAX characters (255 as
|
||||
distributed.)
|
||||
|
||||
If a path name begins with a slash, the path search begins at the
|
||||
root directory. Otherwise, the search begins from the current
|
||||
working directory. A slash by itself names the root directory. A
|
||||
null pathname is illegal, use "." to refer to the current working
|
||||
directory.
|
||||
|
||||
Directory
|
||||
A directory is a special type of file that contains entries that are
|
||||
references to other files. Directory entries are called links. By
|
||||
convention, a directory contains at least two links, . and ..,
|
||||
referred to as dot and dot-dot respectively. Dot refers to the
|
||||
directory itself and dot-dot refers to its parent directory.
|
||||
|
||||
|
||||
|
||||
|
||||
4BSD June 30, 1986 7
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
Root Directory and Current Working Directory
|
||||
Each process has associated with it a concept of a root directory
|
||||
and a current working directory for the purpose of resolving path
|
||||
name searches. A process's root directory need not be the root
|
||||
directory of the root file system.
|
||||
|
||||
File Access Permissions
|
||||
Every file in the file system has a set of access permissions.
|
||||
These permissions are used in determining whether a process may
|
||||
perform a requested operation on the file (such as opening a file
|
||||
for writing). Access permissions are established at the time a file
|
||||
is created. They may be changed at some later time through the
|
||||
chmod(2) call.
|
||||
|
||||
File access is broken down according to whether a file may be: read,
|
||||
written, or executed. Directory files use the execute permission to
|
||||
control if the directory may be searched.
|
||||
|
||||
File access permissions are interpreted by the system as they apply
|
||||
to three different classes of users: the owner of the file, those
|
||||
users in the file's group, anyone else. Every file has an
|
||||
independent set of access permissions for each of these classes.
|
||||
When an access check is made, the system decides if permission
|
||||
should be granted by checking the access information applicable to
|
||||
the caller.
|
||||
|
||||
Read, write, and execute/search permissions on a file are granted to
|
||||
a process if:
|
||||
|
||||
The process's effective user ID is that of the super-user.
|
||||
|
||||
The process's effective user ID matches the user ID of the owner of
|
||||
the file and the owner permissions allow the access.
|
||||
|
||||
The process's effective user ID does not match the user ID of the
|
||||
owner of the file, and either the process's effective group ID
|
||||
matches the group ID of the file, or the group ID of the file is in
|
||||
the process's group access list, and the group permissions allow the
|
||||
access.
|
||||
|
||||
Neither the effective user ID nor effective group ID and group
|
||||
access list of the process match the corresponding user ID and group
|
||||
ID of the file, but the permissions for ``other users'' allow
|
||||
access.
|
||||
|
||||
Otherwise, permission is denied.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4BSD June 30, 1986 8
|
||||
|
||||
|
||||
|
||||
INTRO(2) Minix Programmer's Manual INTRO(2)
|
||||
|
||||
|
||||
SEE ALSO
|
||||
intro(3), strerror(3).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4BSD June 30, 1986 9
|
||||
|
||||
Reference in New Issue
Block a user