OS

Usage

use OS;

or

import OS;

Submodules

The OS module provides definitions matching operating system interfaces.

This module provides Chapel declarations for the constants, types, and functions defined by various operating systems’ programmatic interfaces. It is not complete for any operating system, but does define those things that have been needed so far in implementing other Chapel modules and user programs. It is expected to grow as needed. In all respects (naming, capitalization, types, semantics) the symbols defined here should match their corresponding operating system definitions to the extent Chapel can do so. For documentation on these symbols, please see the operating system manual pages.

type errorCode

A type storing an error code or an error message. An errorCode can be compared using == or != to a CTypes.c_int or to another errorCode. An errorCode can be cast to or from a CTypes.c_int. It can be assigned the value of a CTypes.c_int or another errorCode. In addition, errorCode can be checked directly in an if statement like so:

var err: errorCode;
if err then writeln("err contains an error, ie err != 0");
else writeln("err does not contain an error; err == 0");

The default intent for a formal of type errorCode is const in.

The default value of the errorCode type is undefined.

class SystemError: Error

SystemError is a base class for Errors.Error s generated from errorCode. It provides factory methods to create different subtypes based on the errorCode that is passed.

var err: errorCode
var details: string
proc init(err: errorCode, details: string = "")
override proc message()

Provides a formatted string output for SystemError, generated from the internal err and the details string.

proc createSystemError(err: errorCode, details: string = ""): SystemError

Return the matching SystemError subtype for a given errorCode, with an optional string containing extra details.

Arguments
  • err – the errorCode to generate from

  • details – extra information to include with the error

proc createSystemError(err: int, details: string = "")

Return the matching SystemError subtype for a given error number, with an optional string containing extra details.

Arguments
  • err – the number to generate from

  • details – extra information to include with the error

class BlockingIoError: SystemError

BlockingIoError is the subclass of SystemError corresponding to EAGAIN, EALREADY, EWOULDBLOCK, and EINPROGRESS.

proc init(details: string = "", err: errorCode = EWOULDBLOCK: errorCode)
class ChildProcessError: SystemError

ChildProcessError is the subclass of SystemError corresponding to ECHILD.

proc init(details: string = "", err: errorCode = ECHILD: errorCode)
class ConnectionError: SystemError

ConnectionError is the subclass of SystemError that serves as the base class for all system errors regarding connections.

proc init(err: errorCode, details: string = "")
class BrokenPipeError: ConnectionError

BrokenPipeError is the subclass of ConnectionError corresponding to EPIPE

proc init(details: string = "", err: errorCode = EPIPE: errorCode)
class ConnectionAbortedError: ConnectionError

ConnectionAbortedError is the subclass of ConnectionError corresponding to ECONNABORTED.

proc init(details: string = "", err: errorCode = ECONNABORTED: errorCode)
class ConnectionRefusedError: ConnectionError

ConnectionRefusedError is the subclass of ConnectionError corresponding to ECONNREFUSED.

proc init(details: string = "", err: errorCode = ECONNREFUSED: errorCode)
class ConnectionResetError: ConnectionError

ConnectionResetError is the subclass of ConnectionError corresponding to ECONNRESET.

proc init(details: string = "", err: errorCode = ECONNRESET: errorCode)
class FileExistsError: SystemError

FileExistsError is the subclass of SystemError corresponding to EEXIST.

proc init(details: string = "", err: errorCode = EEXIST: errorCode)
class FileNotFoundError: SystemError

FileNotFoundError is the subclass of SystemError corresponding to ENOENT.

proc init(details: string = "", err: errorCode = ENOENT: errorCode)
class InterruptedError: SystemError

InterruptedError is the subclass of SystemError corresponding to EINTR.

proc init(details: string = "", err: errorCode = EINTR: errorCode)
class IsADirectoryError: SystemError

IsADirectoryError is the subclass of SystemError corresponding to EISDIR.

proc init(details: string = "", err: errorCode = EISDIR: errorCode)
class NotADirectoryError: SystemError

NotADirectoryError is the subclass of SystemError corresponding to ENOTDIR.

proc init(details: string = "", err: errorCode = ENOTDIR: errorCode)
class PermissionError: SystemError

PermissionError is the subclass of SystemError corresponding to EACCES and EPERM.

proc init(details: string = "", err: errorCode = EPERM: errorCode)
class ProcessLookupError: SystemError

ProcessLookupError is the subclass of SystemError corresponding to ESRCH.

proc init(details: string = "", err: errorCode = ESRCH: errorCode)
class TimeoutError: SystemError

TimeoutError is the subclass of SystemError corresponding to ETIMEDOUT.

proc init(details: string = "", err: errorCode = ETIMEDOUT: errorCode)
class IoError: SystemError

IoError is the subclass of SystemError corresponding to EIO.

proc init(err: errorCode = EIO, details: string = "")
class EofError: Error

EofError is the the Chapel-specific error corresponding to encountering end-of-file.

var details: string
proc init(details: string = "", err_msg: string = "")
override proc message()
class UnexpectedEofError: Error

UnexpectedEofError is the Chapel-specific error corresponding to encountering end-of-file before the requested amount of input could be read.

This error can also occur on some writing operations when a :record:~IO.fileWriter’s range has been specified, and the write exceeds the valid range.

var details: string
proc init(details: string = "", err_msg: string = "")
override proc message()
class BadFormatError: Error

BadFormatError is the Chapel-specific error corresponding to incorrectly-formatted input.

var details: string
proc init(details: string = "", err_msg: string = "")
override proc message()
class InsufficientCapacityError: IoError

InsufficientCapacityError is a subclass of IoError indicating that an IO operation required more storage than was provided

proc init(details: string = "")
override proc message()
proc ioerror(error: errorCode, msg: string, path: string, offset: int(64)) throws

Create and throw an Errors.Error if an error occurred, formatting a useful message based on the provided arguments. Do nothing if the error argument does not indicate an error occurred.

Arguments
  • error – the error code

  • msg – extra information to include in the thrown error

  • path – optionally, a path to include in the thrown error

  • offset – optionally, an offset to include in the thrown error

Throws

Error – A subtype is thrown when the error argument indicates an error occurred

proc ioerror(errstr: string, msg: string, path: string, offset: int(64)) throws

Create and throw an IoError and include a formatted message based on the provided arguments.

Arguments
  • errstr – the error string

  • msg – extra information to print after the error description

  • path – a path to print out that is related to the error

  • offset – an offset to print out that is related to the error

Throws

IoError – always throws an IoError

proc errorToString(error: errorCode): string

Convert a errorCode code to a human-readable string describing the error.

Arguments

error – the error code

Returns

a string describing the error