* [Caml-list] Apparent I/O bug
@ 2004-01-31 8:46 Matt Gushee
2004-01-31 9:38 ` Xavier Leroy
0 siblings, 1 reply; 3+ messages in thread
From: Matt Gushee @ 2004-01-31 8:46 UTC (permalink / raw)
To: caml-list
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?)?
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.
--
Matt Gushee When a nation follows the Way,
Englewood, Colorado, USA Horses bear manure through
mgushee@havenrock.com its fields;
http://www.havenrock.com/ When a nation ignores the Way,
Horses bear soldiers through
its streets.
--Lao Tzu (Peter Merel, trans.)
-------------------
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Apparent I/O bug
2004-01-31 8:46 [Caml-list] Apparent I/O bug Matt Gushee
@ 2004-01-31 9:38 ` Xavier Leroy
2004-01-31 9:53 ` Matt Gushee
0 siblings, 1 reply; 3+ messages in thread
From: Xavier Leroy @ 2004-01-31 9:38 UTC (permalink / raw)
To: Matt Gushee; +Cc: caml-list
> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Apparent I/O bug
2004-01-31 9:38 ` Xavier Leroy
@ 2004-01-31 9:53 ` Matt Gushee
0 siblings, 0 replies; 3+ messages in thread
From: Matt Gushee @ 2004-01-31 9:53 UTC (permalink / raw)
To: caml-list
On Sat, Jan 31, 2004 at 10:38:06AM +0100, Xavier Leroy wrote:
> > I have encountered what appears to be a bug in out_channels created with
> > Pervasives.open_out_gen:
....
> > 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").
Okay, that's simple enough. Thanks for the info!
But I wonder why it is necessary to have the "Open_wronly" flag. What
would be the point of opening an output channel without write
permission?
--
Matt Gushee When a nation follows the Way,
Englewood, Colorado, USA Horses bear manure through
mgushee@havenrock.com its fields;
http://www.havenrock.com/ When a nation ignores the Way,
Horses bear soldiers through
its streets.
--Lao Tzu (Peter Merel, trans.)
-------------------
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-01-31 9:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-31 8:46 [Caml-list] Apparent I/O bug Matt Gushee
2004-01-31 9:38 ` Xavier Leroy
2004-01-31 9:53 ` Matt Gushee
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox