diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1995-05-04 10:15:53 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1995-05-04 10:15:53 +0000 |
commit | 61bd8ace6bdb2652f4d51d64e3239a7105f56c26 (patch) | |
tree | e8b957df0957c1b483d41d68973824e280445548 /stdlib/sys.ml | |
parent | 8f9ea2a7b886e3e0a5cfd76b11fe79d083a7f20c (diff) |
Passage a la version bootstrappee (franchissement du Rubicon)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'stdlib/sys.ml')
-rw-r--r-- | stdlib/sys.ml | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/stdlib/sys.ml b/stdlib/sys.ml new file mode 100644 index 000000000..b6172e418 --- /dev/null +++ b/stdlib/sys.ml @@ -0,0 +1,52 @@ +(* System interface *) + +type open_flag = + Open_rdonly | Open_wronly | Open_rdwr + | Open_append | Open_creat | Open_trunc | Open_excl + | Open_binary | Open_text + +external get_argv: unit -> string array = "sys_get_argv" + +let argv = get_argv() + +external remove: string -> unit = "sys_remove" +external getenv: string -> string = "sys_getenv" +external open_desc: string -> open_flag list -> int -> int = "sys_open" +external close_desc: int -> unit = "sys_close" +external command: string -> int = "sys_system_command" +external chdir: string -> unit = "sys_chdir" + +type signal_behavior = + Signal_default + | Signal_ignore + | Signal_handle of (int -> unit) + +external signal: int -> signal_behavior -> unit = "install_signal_handler" + +let sigabrt = -1 +let sigalrm = -2 +let sigfpe = -3 +let sighup = -4 +let sigill = -5 +let sigint = -6 +let sigkill = -7 +let sigpipe = -8 +let sigquit = -9 +let sigsegv = -10 +let sigterm = -11 +let sigusr1 = -12 +let sigusr2 = -13 +let sigchld = -14 +let sigcont = -15 +let sigstop = -16 +let sigtstp = -17 +let sigttin = -18 +let sigttou = -19 + +exception Break + +let catch_break on = + if on then + signal sigint (Signal_handle(fun _ -> raise Break)) + else + signal sigint Signal_default |