From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 37FF68027D for ; Fri, 13 Oct 2017 12:57:34 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.43,370,1503352800"; d="scan'208";a="296061163" Received: from dhcp-13-128.lip.ens-lyon.fr ([140.77.13.128]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Oct 2017 12:57:34 +0200 From: =?utf-8?Q?Laurent_Th=C3=A9venoux?= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 11.0 \(3445.1.7\)) Message-Id: <3380AF33-0E0F-46E9-BF03-E61B65E6B838@inria.fr> Date: Fri, 13 Oct 2017 12:57:33 +0200 To: caml-list@inria.fr X-Mailer: Apple Mail (2.3445.1.7) Subject: [Caml-list] Interfacing C with OCaml and file descriptors Hi, I have a naive question about file descriptors and C interface (when interf= acing C with OCaml). For instance, a file.ml file which looks like: external my_c_interface : out_channel -> int =3D c_function where c_function writes something to a file and return the number of writte= n char. The c_function takes a FILE* file descriptor, as for example: CAMLprim value c_function (value channel) { CAMLparam1 (channel); FILE* fd =3D ???; CAMLreturn (Val_int (call_to_c_func (fd))); } So, if possible, how to convert the =E2=80=98value channel=E2=80=99 to a = =E2=80=98FILE*=E2=80=99? Thanks for your help, Laurent=