Sys

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2009-09-10 (木) 11:55:20

Chapter 20 標準ライブラリ

module Sys: sig  end

システムインターフェイスです。


val argv : string array

プロセスに与えられたコマンドライン引数です。最初の要素はプログラムを起動するのに指定されたコマンド名です。それ以下の要素はプログラムに与えられたコマンドライン引数です。

val executable_name : string

現在実行している実行ファイルのファイル名です。

val file_exists : string -> bool

指定されたファイル名のファイルがあるかどうかテストします。

val is_directory : string -> bool

指定されたファイル名がディレクトリならtrue、そのほかの種類のファイルならばfalseを返します。 指定された名前のファイルが存在しないならば、例外Sys_errorを発生します。

val remove : string -> unit

ファイルシステムから指定されたファイルを削除します。

val rename : string -> string -> unit

ファイル名を変更します。最初の引数は元々のファイル名で、2 つ目の引数は新しいファイル名です。既に新しい名前のファイルが存在する場合は、OSによって、ファイルを置き換えたり、例外を発生させたりします。

val getenv : string -> string

環境変数を返します。指定された変数がない場合は例外 Not_found を発生します。

val command : string -> int

与えられたシェルコマンドを実行してその終了コードを返します。

val time : unit -> float

プロセッサ時間を秒単位で返します。プロセッサ時間とは実行開始してからプログラムが使用した時間です。

val chdir : string -> unit

プロセスのカレントディレクトリを変更します。

val getcwd : unit -> string

現在のカレントディレクトリを返します。

val readdir : string -> string array

与えられたディレクトリに存在するすべての名前を返します。カレントディレクトリや親ディレクトリを示す名前("."と"..")は含まれません。各文字列は完全なパスでなく、ファイル名です。返り値の配列内で各文字列が、アルファベット順など特定の順序に並んでいる保証はありません。

val interactive : bool Pervasives.ref

初期状態でこの参照には、スタンドアロンプログラムでは false が、対話式トップレベルシステム ocaml では true がセットされています。

val os_type : string

Caml プログラムを実行しているオペレーティングシステムを返します。以下のいずれかです。

  • "Unix" (Linux や Mac OS X を含むすべての Unix)
  • "Win32" (MSVC++ でコンパイルされた OCaml の MS-Windows)
  • "Cygwin" (Cygwin でコンパイルされた OCaml の MS-Windows)
val word_size : int

Caml プログラムを実行しているマシンの 1 ワード単位を返します。32 か 64 です。

val max_string_length : int

文字列の最大長です。

val max_array_length : int

普通の配列の最大長です。floatの配列の最大の長さは、32bitマシンではmax_arary_length/2、64bitマシンではmax_arary_lengthです。

Signal handling

type signal_behavior =
| Signal_default
| Signal_ignore
| Signal_handle of (int -> unit)  (* シグナルを受けたときの動作
   Signal_default: デフォルトの動作をとる (大抵プログラムを異常終了する)
   Signal_ignore: シグナルを無視する
   Signal_handle f: シグナル番号を引数にして関数 f を呼ぶ
*)
val signal : int -> signal_behavior -> signal_behavior

シグナルを受け取ったときのシステムの動作を指定します。最初の引数はシグナル番号です。元々そのシグナルに指定されていた動作を返します。

val set_signal : int -> signal_behavior -> unit

Sys.signal と同じですが返値は無視されます。

Signal numbers for the standard POSIX signals.

val sigabrt : int

異常終了

val sigalrm : int

タイムアウト

val sigfpe : int

算術例外

val sighup : int

コントロール端末のハングアップ

val sigill : int

無効なハードウェア命令

val sigint : int

対話式割り込み (ctrl-C)

val sigkill : int

終了 (無視できない)

val sigpipe : int

壊れたパイプ

val sigquit : int

対話式終了

val sigsegv : int

無効なメモリ参照

val sigterm : int

終了

val sigusr1 : int

アプリケーション定義シグナル 1

val sigusr2 : int

アプリケーション定義シグナル 2

val sigchld : int

子プロセスの終了

val sigcont : int

続行 pp

val sigstop : int

停止

val sigtstp : int

対話式停止

val sigttin : int

バックグラウンドプロセスからの端末読み込み

val sigttou : int

バックグラウンドプロセスからの端末書き込み

val sigvtalrm : int

バーチャル時間のタイムアウト

val sigprof : int

プロファイリング割り込み

exception Break

Sys.catch_break がオンのとき、対話式割り込みがあったとき発生する例外です。

val catch_break : bool -> unit

catch_break は、対話式割り込み (ctrl-C) でプログラムを終了するか、例外 Break を発生するかを決定します。catch_break true で例外 Break を発生し、catch_break false でユーザ割り込みによるプログラム終了となります。

val ocaml_version : string

ocaml_version は Objective Caml のバージョンです。これは "major.minor[.patchlevel][+additional-info]" という形をした文字列です。major と minorとpatchlevelは整数で、additional-info は任意文字列です。[.patchlevel]と[+additional-info]は無いかもしれません。

新規 編集 添付