Как определить работающую операционную систему?

Как я могу определить тип системы / операционную систему в 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_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 должен быть какой-то собственный способ проверки типа системы.

5
задан cnd 23 January 2012 в 04:56
поделиться