[Openmcl-devel] stdout from called C funcs while using IDE
Paul Krueger
plkrueger at comcast.net
Mon Apr 6 15:11:42 PDT 2009
I'm running the Cocoa IDE for CCL under Leopard. While working through
some of the foreign function examples shown on http://ccl.clozure.com/manual/chapter12.10.html
I discovered that even though everything works as advertised from a
CCL command line, when using the IDE the output from the C functions
is sent to the system console rather than to either the listener
window or the AltConsole window. I think maybe this is because the
function try-connecting-to-altconsole in start.lisp uses a dup2 call
to change stdin (fd 0), but doesn't actually change stdout (fd 1). It
only changes the lisp symbol ccl::*stdout*. I tried to make what I
thought was a simple change to fix this by adding a second #_dup2 call
for fd 1, but when I tried to rebuild the IDE from the CCL command
line it aborted while trying to save the new application, so I suspect
there is something more subtle happening during the build.
This isn't really a problem for me given what I need to do, so I'm not
going to spend any more time chasing it down. But I thought I'd
mention it in case printf to stdout from a called C function is needed
by someone.
Incidentally, there is a small typo on http://ccl.clozure.com/manual/chapter12.10.html
. The include statement in the example code should be "#include
<stdio.h>" rather than "#include <stdio.>". Most any C programmer
would figure that out pretty quickly I'm sure.
Paul
More information about the Openmcl-devel
mailing list