Làm thế nào tôi có thể phát hiện loại hệ thống/hệ điều hành trong OCaml?Làm cách nào để phát hiện hệ điều hành đang chạy?
Ý tưởng hiện tại của tôi thực sự kỳ lạ. Chạy cuộc gọi hệ thống: "uname -a"
với
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)
ngay cả trên Cygwin ...
Nhưng tôi đoán thì phải có một số bản địa cho cách ocaml để kiểm tra loại hệ thống.