64-bit stat and statfs on Mac

Stelian Ionescu sionescu at cddr.org
Wed Mar 25 19:27:57 UTC 2015


> Greetings list.
> 
> I'm running into a bit of a conundrum.  I'm calling into stat(2) and
> statfs(2) on Mac operating systems and get back the old 32-bit structure
> instead of the new 64-bit structure.
> 
> If I compile a test program in C I get the 64-bit structure with just
> <sys/mount.h> included.  When I use DEFCFUN I get the 32-bit structure.
> Same for <sys/stat.h>.  I'm working around it currently using #+, but
> I'd like some help understanding what's going on so I can do a proper
> implementation.
> 
> I read in the include files and man pages that the *64 functions are
> temporary things while old code gets updated and that users should never
> actually call them.  In the include file they are different functions
> (see below for statfs), but there is some preprocessor magic happening.
> There's a pair of defines _DARWIN_USE_64_BIT_INODE and
> _DARWIN_NO_64_BIT_INODE that you can set before doing the include to set
> the default behavior, but CFFI doesn't do grovelling for function
> definitions.

Hello Lucien,

This(and others) is one of then reasons why I wrote libfixposix, so I'd
advise you to use IOlib.

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
http://common-lisp.net/project/iolib




More information about the cffi-devel mailing list