Ocaml 如何检测正在运行的操作系统?
如何在OCaml中检测系统类型/操作系统 我现在的想法真的很奇怪。正在运行系统调用:Ocaml 如何检测正在运行的操作系统?,ocaml,Ocaml,如何在OCaml中检测系统类型/操作系统 我现在的想法真的很奇怪。正在运行系统调用:“uname-a” let syscall ?(env=[| |]) cmd = let ic, oc, ec = Unix.open_process_full cmd env in let buf1 = Buffer.create 96 and buf2 = Buffer.create 48 in (try while true do Buffer.add_channe
“uname-a”
let syscall ?(env=[| |]) cmd =
let ic, oc, ec = Unix.open_process_full cmd env in
let buf1 = Buffer.create 96
and buf2 = Buffer.create 48 in
(try
while true do Buffer.add_channel buf1 ic 1 done
with End_of_file -> ());
(try
while true do Buffer.add_channel buf2 ec 1 done
with End_of_file -> ());
let exit_status = Unix.close_process_full (ic, oc, ec) in
check_exit_status exit_status;
(Buffer.contents buf1,
Buffer.contents buf2)
即使在cygwin身上
但是我想一定有一些本地的ocaml方法来检查系统类型。标准ocaml库有一个名为
Sys.os_type
的字符串,但是它没有uname-a
那么多信息。它要么是“Unix”
,“Win32”
,要么是“Cygwin”
。如中所述。NB在extunix中还有一个