I found out the next issue in this simple code: let () = print_endline "Hello"; print_endline (Unix.getlogin ())
Running in the normal case, with `./a.out' gives: Hello ricardo But running like `./a.out </dev/null' makes Unix.getlogin fail: Hello Fatal error: exception Unix.Unix_error(20, "getlogin", "") A simple strace reveals the problem: open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=509, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb125554000 read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 509 read(3, "", 4096) = 0 close(3) = 0 munmap(0x7fb125554000, 4096) = 0 -> ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0x7fff12682c98) = -1 ENOTTY (Inappropriate ioctl for device) write(2, "Fatal error: exception Unix.Unix"..., 59) = 59 exit_group(2) = ? Any idea how to fix this? Best regards -- Ricardo (http://r.untroubled.be/) -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs