[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Xavier Leroy <xavier.leroy@i...> |
| Subject: | Re: [Caml-list] Apparent I/O bug |
> I have encountered what appears to be a bug in out_channels created with > Pervasives.open_out_gen: > > bash-2.05a$ ocaml > Objective Caml version 3.07+2 > > # let oc = open_out_gen [Open_creat; Open_text] 0o644 "/var/tmp/foo";; > val oc : out_channel = <abstr> > # output_string oc "Fubar Baz\n";; > - : unit = () > # close_out oc;; > Exception: Sys_error "Bad file descriptor". > > Well, that's disturbing. Or is there something I don't understand about > the proper usage of open_out_gen (documentation problem?)? In your call to open_out_gen, you didn't request write permission (the list of flags doesn't contain "Open_wronly"). So, attempts to write to the underlying file descriptor will fail. Since out_channels are buffered, the error isn't reported at the first output_string, but only when an actual OS write takes place, i.e. at close_out in your example. > BTW, I'm running OCaml on Debian GNU/Linux 3.0 (Woody), with glibc > 2.2.5. I installed OCaml 3.07pl2 from source, with no apparent > compilation errors. I am seeing the same problem on two similarly > configured systems. It is standard POSIX behavior. - Xavier Leroy ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners