From: Bruno.Verlyck@inria.fr
To: andrieu@ijm.jussieu.fr
Cc: mtucker@eecs.harvard.edu, caml-list@inria.fr
Subject: Re: [Caml-list] Sharing Files between OCaml and C
Date: Tue, 6 Aug 2002 16:01:00 +0200 [thread overview]
Message-ID: <200208061401.g76E10K24093@waco.inria.fr> (raw)
In-Reply-To: <15695.51531.965211.875413@akasha.ijm.jussieu.fr> (andrieu@ijm.jussieu.fr)
From: Olivier Andrieu <andrieu@ijm.jussieu.fr>
Date: Tue, 6 Aug 2002 15:04:11 +0200
Michael Tucker [Monday 5 August 2002] :
> I would like to share access to a file between a C function and an OCaml
> function in an application put together with CamlIDL. If I have a C
> function with prototype:
> int manip_file(FILE* f, int x);
> Is there any support in CamlIDL for passing a file that was opened in
> OCaml. I checked the archives, and found a message that described pulling
> out the integer file descriptor, and passing that to fdopen on the C side,
> but that was it -- the same message asked about better support from CamlIDL
> (this was winter 2000), but I couldn't find a response. Has this changed
> over the past year and a half, or is that the best method?
Yes, I think that's still the best method:
- get the descriptor with Unix.descr_of_in_channel or
Unix.descr_of_out_channel
- fdopen it on the C side
You might also want to call dup() on the fd so that your FILE* stream is still
working if the original caml channel is closed.
But of course you now have two concurrent buffering mechanisms, so flushing when
switching the writing side (C vs Caml) for out_channels is mandatory, and
seeking cautiously when switching the reading side (for in_channels) too.
Bruno.
-------------------
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
next prev parent reply other threads:[~2002-08-06 14:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-05 9:26 [Caml-list] Matching when Nicolas Cannasse
2002-08-05 9:41 ` Luc Maranget
2002-08-05 16:13 ` John Max Skaller
2002-08-05 19:29 ` Luc Maranget
2002-08-05 20:16 ` [Caml-list] Sharing Files between OCaml and C Michael Tucker
2002-08-06 13:04 ` Olivier Andrieu
2002-08-06 14:01 ` Bruno.Verlyck [this message]
2002-08-06 18:50 ` Lex Stein
2002-08-07 11:40 ` Bruno.Verlyck
2002-08-05 13:05 ` [Caml-list] Matching when Pierre Weis
2002-08-05 15:50 ` John Max Skaller
2002-08-05 16:02 ` Remi VANICAT
2002-08-05 16:23 ` John Max Skaller
2002-08-05 18:25 ` Oleg
2002-08-06 6:37 ` Florian Hars
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200208061401.g76E10K24093@waco.inria.fr \
--to=bruno.verlyck@inria.fr \
--cc=andrieu@ijm.jussieu.fr \
--cc=caml-list@inria.fr \
--cc=mtucker@eecs.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox