dowiedziałem się kolejny problem w ten prosty kodu:OCaml: nieoczekiwany wyjątek z Unix.getlogin gdy stdin przekierowany
let() =
print_endline "Hello";
print_endline (Unix.getlogin())
pracuje w normalnym przypadku, przy ./a.out
daje:
Hello
ricardo
Ale działa jak ./a.out </dev/null
sprawia Unix.getlogin fail:
Hello
Fatal error: exception Unix.Unix_error(20, "getlogin", "")
Wszelkie id dlaczego tak się dzieje?
Po prostu wypróbowałem to na moim systemie: Mac OS X 10.6.8/OCaml 3.12.0 i nie widzę problemu. Wynik jest taki sam w obu przypadkach. Jaki jest twój system? –
Linux, ponownie przeczytałem man 3 getlogin i widziałem "błąd" w glibc o przekierowaniu stdin: -/ – Ricardo
Tak, bkconrad przybił to! –