On 2 June 2012 17:26, Stéphane Ducasse <[email protected]> wrote:

> Don't you think that this is what we are trying to do since ages: improving 
> the infrastructure
> but not by piling junk on junk.

hehe stef.. I can say this happens everywhere. Piles of junk on top of
each other..

Like figuring out, why output of readdir() function having strange results..
To figure it out, you have to read this code, and understand what's going on:
 this is part of standard C library on mac (/usr/include/dirent.h on
your machine, you can check it)


__BEGIN_DECLS
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
int alphasort(const void *, const void *) __DARWIN_INODE64(alphasort);
#endif /* not POSIX */
int closedir(DIR *) __DARWIN_ALIAS(closedir);
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
int getdirentries(int, char *, int, long *)
#if __DARWIN_64_BIT_INO_T
/*
 * getdirentries() doesn't work when 64-bit inodes is in effect, so we
 * generate a link error.
 */
                                                
__asm("_getdirentries_is_not_available_when_64_bit_inodes_are_in_effect")
#else /* !__DARWIN_64_BIT_INO_T */
                                                
__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_6,
__IPHONE_2_0,__IPHONE_2_0)
#endif /* __DARWIN_64_BIT_INO_T */
;
#endif /* not POSIX */
DIR *opendir(const char *) __DARWIN_ALIAS_I(opendir);
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
DIR *__opendir2(const char *, int) __DARWIN_ALIAS_I(__opendir2);
#endif /* not POSIX */
struct dirent *readdir(DIR *) __DARWIN_INODE64(readdir);
int readdir_r(DIR *, struct dirent *, struct dirent **)
__DARWIN_INODE64(readdir_r);
void rewinddir(DIR *) __DARWIN_ALIAS_I(rewinddir);
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
int scandir(const char *, struct dirent ***,
    int (*)(struct dirent *), int (*)(const void *, const void *))
__DARWIN_INODE64(scandir);
#ifdef __BLOCKS__
int scandir_b(const char *, struct dirent ***,
    int (^)(struct dirent *), int (^)(const void *, const void *))
__DARWIN_INODE64(scandir_b) __OSX_AVAILABLE_STARTING(__MAC_10_6,
__IPHONE_3_2);
#endif /* __BLOCKS__ */
#endif /* not POSIX */
void seekdir(DIR *, long) __DARWIN_ALIAS_I(seekdir);
long telldir(DIR *) __DARWIN_ALIAS_I(telldir);
__END_DECLS

#endif /* !KERNEL */





-- 
Best regards,
Igor Stasenko.

Reply via email to