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.