OCaml: неожиданное исключение с Unix.getlogin при перенаправлении stdin

Я обнаружил следующую проблему в этом простом коде:

let () =
    print_endline "Hello";
    print_endline (Unix.getlogin ())

Работа в обычном случае с ./a.outдает:

Hello
ricardo

Но запуск как ./a.out приводит к сбою Unix.getlogin:

Hello
Fatal error: exception Unix.Unix_error(20, "getlogin", "")

Есть идеи, почему это происходит?

6
задан Ricardo 20 March 2012 в 17:33
поделиться