intro - introduction to system call subroutines


#include <errno_p.h>


Most system calls have one or more error returns. An error condition is indicated by an otherwise impossible returned value. This is almost always -1; the individual descriptions specify the details. An error number 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.

This section describes the two classes of the system calls:

system calls that directly invoke the PARASITE system.

system calls that access the PARASITE-FS system, particularly the file system.


All the possible error number are not listed in each system call description because many error are possible for most of the calls. The following is a list of the error numbers and their names as defined in errno_p.h. System calls that interact with the host (for example, input/output calls to files on the host), may receive some additional error numbers from the host. See intro(2) in the UNIX Users Manual for a list of these errors.
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 a directory in the path name doesn't exist.

5 EIO I/O error
Some physical I/O error. This error may occur on a call following the one to which it applies because of the asynchronous nature of input/output operations.

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 occure when, for example, a tape drive is not on-line or no disk pack is loaded on a drive.

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

12 ENOMEM Not enough space
Dur an exec, brk, or sbrk, a program asks for more space than the system is able to supply because of physical memory limitations.

13 EACCES Permision denies
An attempt was made to access a file in a way forbidden by the protection system. For example, this error is generated when trying to open a read-only file for writing, or when using a host file as an argument to a function that only operates on satellite files.

17 EEXIST File Exists
An existing file was mentioned in an inappropriate context.

20 ENOTDIR Not a directory
A non-directory was specified where a directory is required, for example in a path prefix.

21 EISDIR Is a directory
An attempt to write on a directory.

22 EINVAL Invalid argument
Some invalid argument (e.g. lseek has generated a negative pointer).

23 ENFILE File table overflow
The system's table of open files is full, and temporarilty no more open s can be accepted. The maximum number of files that can be open at one time is 10.

28 ENOSPC No space left on device
During a write to an ordinary file, there is no free space left on the device.

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 the machine.

35 ENOABUF No I/O buffer
This error occurs when all satellite disk I/O transfer buffers are busy.

36 ENOTBBN File pointer not on block boundary
This occurs when a read or write request is made when the pointer to the current position in a satellite file is not on a 512 byte block boundary.

37 EMXFILE Directory full
This error occurs when trying to create a file in a satellite directory that already contains the maximum number of files allowed.