Library DocumentationStructuresSignaturesIdentifiersPackagesAbout

Signature POSIX_ERROR (basis)

Symbolic names for POSIX errors.

The structure Posix.Error provides symbolic names for errors that may be generated by the POSIX library, and various related functions.
signature POSIX_ERROR =
  sig
    type syserror = OS.syserror

    val toWord      : syserror -> SysWord.word
    val fromWord    : SysWord.word -> syserror

    val errorMsg    : syserror -> string
    val errorName   : syserror -> string
    val syserror    : string -> syserror option

    val acces       : syserror
    val again       : syserror
    val badf        : syserror
    val badmsg      : syserror
    val busy        : syserror
    val canceled    : syserror
    val child       : syserror
    val deadlk      : syserror
    val dom         : syserror
    val exist       : syserror
    val fault       : syserror
    val fbig        : syserror
    val inprogress  : syserror
    val intr        : syserror
    val inval       : syserror
    val io          : syserror
    val isdir       : syserror
    val loop        : syserror
    val mfile       : syserror
    val mlink       : syserror
    val msgsize     : syserror
    val nametoolong : syserror
    val nfile       : syserror
    val nodev       : syserror
    val noent       : syserror
    val noexec      : syserror
    val nolck       : syserror
    val nomem       : syserror
    val nospc       : syserror
    val nosys       : syserror
    val notdir      : syserror
    val notempty    : syserror
    val notsup      : syserror
    val notty       : syserror
    val nxio        : syserror
    val perm        : syserror
    val pipe        : syserror
    val range       : syserror
    val rofs        : syserror
    val spipe       : syserror
    val srch        : syserror
    val toobig      : syserror
    val xdev        : syserror
  end

[eqtype syserror]
POSIX error type. This type is identical to the type OS.syserror.

[toWord syserror]
[fromWord w]
These functions convert between syserror values and non-zero word representations. Note that there is no validation that a syserror value generated using fromWord corresponds to an error value supported by the underlying system.

[errorMsg sy]
returns a string that describes the system error sy.

[errorName err]
returns a unique name used for the syserror value.

[syserror s]
returns the syserror whose name is s if it exists. If e is a syserror, we have SOME(e) = syserror(errorName e).

[acces]
An attempt was made to access a file in a way that is forbidden by its file access permissions.

[again]
A resource is temporarily unavailable, and later calls to the same routine may complete normally.

[badf]
A bad file descriptor was out of range or referred to no open file, or a read (write) request was made to a file which was only open for writing (reading).

[badmsg]
The implementation has detected a corrupted message.

[busy]
An attempt was made to use a system resource that was being used in a conflicting manner by another process.

[canceled]
The associated asynchronous operation was canceled before completion.

[child]
A wait related function was executed by a process that had no existing or unwaited-for child process.

[deadlk]
An attempt was made to lock a system resource which would have resulted in a deadlock situation.

[dom]
An input argument was outside the defined domain of a mathematical function.

[exist]
An existing file was specified in an inappropriate context; for instance, as the new link in a link function.

[fault]
The system detected an invalid address in attempting to use an argument of a system call.

[fbig]
The size of a file would exceed an implementation-defined maximum file size.

[inprogress]
An asynchronous process has not yet completed.

[intr]
An asynchronous signal (such as a quit or a term (terminate) signal) was caught by the process during the execution of an interruptible function.

[inval]
An invalid argument was supplied.

[io]
Some physical input or output error occurred.

[isdir]
An illegal operation was attempted on a directory, such as opening a directory for writing.

[loop]
A loop was encountered during pathname resolution due to symbolic links.

[mfile]
An attempt was made to open more than the maximum number of file descriptors allowed in this process.

[mlink]
An attempt was made to have the link count of a single file exceed a system-dependent limit.

[msgsize]
An inappropriate message buffer length was used.

[nametoolong]
The size of a pathname string, or a pathname component, was longer than the system-dependent limit.

[nfile]
There were too many open files.

[nodev]
An attempt was made to apply an inappropriate function to a device; for example, trying to read from a write-only device such as a printer.

[noent]
A component of a specified pathname did not exist, or the pathname was an empty string.

[noexec]
A request was made to execute a file that, although it had the appropriate permissions, was not in the format required by the implementation for executable files.

[nolck]
A system-imposed limit on the number of simultaneous file and record locks was reached.

[nomem]
The process image required more memory than was allowed by the hardware or by system-imposed memory management constraints.

[nospc]
During a write operation on a regular file, or when extending a directory, there was no free space left on the device.

[nosys]
An attempt was made to use a function that is not available in this implementation.

[notdir]
A component of the specified pathname existed, but it was not a directory, when a directory was expected.

[notempty]
A directory with entries other than "." and ".." was supplied when an empty directory was expected.

[notsup]
The implementation does not support this feature of the standard.

[notty]
A control function was attempted for a file or a special file for which the operation was inappropriate.

[nxio]
Input or output on a special file referred to a device which did not exist, or made a request beyond the limits of the device. This error may occur when, for example, a tape drive is not online.

[perm]
An attempt was made to perform an operation limited to processes with appropriate privileges or to the owner of a file or some other resource.

[pipe]
A write was attempted on a pipe or FIFO for which there was no process to read the data.

[range]
The result of a function was too large to fit in the available space.

[rofs]
An attempt was made to modify a file or directory on a file system which was read-only at that time.

[spipe]
An invalid seek operation was issued on a pipe or FIFO.

[srch]
No such process could be found corresponding to that specified by a given process ID.

[toobig]
The sum of bytes used by the argument list and environment list was greater than the system-imposed limit.

[xdev]
A link to a file on another file system was attempted.

Discussion
The string representation of a syserror value, as returned by errorName, is the name of the error. Thus, errorName badmsg = "badmsg". The name of a corresponding POSIX error can be derived by capitalizing all letters and adding the character ``E'' as a prefix. For example, the POSIX error associated with nodev is ENODEV. The only exception to this rule is the error toobig, whose associated POSIX error is E2BIG.


Generated by SigDoc