caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [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;
as well as URLs for NNTP newsgroup(s).