From: Philippe Schnoebelen
Subject: Interfacing Lucid and C
Date:
Message-ID: <5296@lifia.imag.fr>
I'm having problems interfacing Lucid and C when it comes to complicated
data structures, and I would like to know if anybody has experience of
these problems.
Specifically, I'm trying to pass a Lisp stream to a C function, (or more
precisely the C 'FILE' presumably built into the Lisp stream) so that I can
consume it by getchar (say). Anybody knows how to do that ? (If that helps,
I'm using Lucid 2.1.1 on Suns).
Much thanks in advance,
--
Philippe SCHNOEBELEN, Best: ···@lifia.imag.fr
LIFIA - INPG,
46, Avenue Felix VIALLET 2nd: ···@lifia.UUCP
38000 Grenoble, FRANCE last: ..!mcvax!inria!lifia!phs
"Algebraic symbols are used when you do not know what you are talking about."
From: Michael Sokolov
Subject: Re: Interfacing Lucid and C
Date:
Message-ID: <3559@mit-amt>
Re: FILE / stream connection.
Try using the lisp function "extract-stream-handles." I believe
that this returns the file descriptor (not FILE pointer). Then you could
use UNIX "read" command instead of getchar. I don't think Lucid makes
a FILE pointer.
As far as passing general structures back and forth, there is a not-very-
pretty way to do it, which is to call the structure an array of type
'(unsigned-byte 32) in lisp, and a structure in C. Then you can access
the elements of a C structure from Lisp if you know the correct
offsets into the structure...
-MS