[squeak-dev] FFI and capturing external program input in
Squeak/Pharo
Dave Mason
dmason at mason-rose.ca
Fri Jun 17 16:34:10 UTC 2011
I'm working on making a clean interface layer on top of FFI (and
possibly Alien and NativeBoost).
It will look something like:
FFIParse createFFI: #System category: 'My-Category' library: 'System'.
System parseSystemHeader: 'sys/resource.h'.
rusage := System struct: #rusage.
System getrusage: 0 with: rusage.
Transcript show: 'Used ';
show: rusage ru_utime tv_sec;
show: '.';
show: rusage ru_utime tv_usec;
show: ' seconds of user CPU time';
cr.
System parseSystemHeaer: 'unistd.h';
sleep: 5.
pid := System getpid
I have a very compact, almost compete C header parser but I need to be
able to get the output from
popen("echo \"#include <unistd.h>\"|gcc -E -","r")
or equivalent. The popen is easy enough to get at through FFI, but is
there a way to connect either the FILE* or the file descriptor up to
some ReadStream. In the worst case, I could probably use FFI to call
fread(3) but is there a better way?
I'd also appreciate any simple examples of using FFI, especially with
ExternalStructure subclasses.
Finally is there a way to get external variables such as 'extern int
errno;' ?
Thanks in advance!
../Dave
More information about the Squeak-dev
mailing list
|