> (Which in itself tickles and scares the bejesus out of me.) Is there a
> good way of finding the standard C library on a Unix system other than
> hard-wiring it in like this?
Yes. Parrot is linked with the standard C library. You can get a handle for
the own executable by passing a NULL pointer to dlopen. You can also use this
handle to call libc functions.
You can not pass a NULL pointer to loadlib at the moment, this small hacks
"converts" an empty string to a NULL pointer to pass it to Parror_dlopen:
const char * s = 0;
if( $2->strlen != 0 ) {
s = string_to_cstring(interpreter, ($2));
}
p = Parrot_dlopen(s);
With this hack, the following code will work:
loadlib P1, ""
dlfunc P0, P1, "system", "it"
set I0, 1
set S5, "ls"
invoke
end
cya,
Jens Rieks