From: Richard M K. <kr...@pr...> - 2007-05-10 03:10:10
|
Andreas Fuchs <as...@bo...> writes: > Tassilo Horn wrote: >> >> currently the sb-posix package is missing `getcwd', so I added it. > >> --- contrib/sb-posix/interface.lisp.orig 2007-03-03 21:19:26.000000000 > +0100 >> +++ contrib/sb-posix/interface.lisp 2007-05-09 23:11:09.000000000 +0200 >> @@ -96,6 +96,7 @@ >> (define-call* "dup" int minusp (oldfd file-descriptor)) >> (define-call* "dup2" int minusp (oldfd file-descriptor) >> (newfd file-descriptor)) >> +(define-call* "getcwd" c-string numberp) > > Umm, on OS X, this function is documented as expecting a buffer and > a buffer size as arguments, neither of which are present in this > definition. Oddly, your definition works on my system, probably > thanks to the omitted buf argument being passed as NULL (which > causes a large-enough buffer to be allocated via malloc on OS X, but > has undefined consequences on linux). There's a note about this behavior in src/code/wrap.lisp. BSD libc and glibc on Linux both automatically allocate space for the string, but other C libraries don't. Here's the specification for standard getcwd: http://www.opengroup.org/onlinepubs/009695399/functions/getcwd.html -- RmK |