Print this page
opendir, dirfd are in XPG7
alphasort and scandir are new in XPG7

*** 22,39 **** /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1988 AT&T */ /* All Rights Reserved */ #ifndef _DIRENT_H #define _DIRENT_H - #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.6.1.5 */ - #include <sys/feature_tests.h> #include <sys/types.h> #include <sys/dirent.h> --- 22,41 ---- /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ + /* + * Copyright 2014 Garrett D'Amore <garrett@damore.org> + */ + /* Copyright (c) 1988 AT&T */ /* All Rights Reserved */ #ifndef _DIRENT_H #define _DIRENT_H #include <sys/feature_tests.h> #include <sys/types.h> #include <sys/dirent.h>
*** 67,78 **** char *d_buf; /* directory block */ } DIR; /* stream data from opendir() */ #endif /* !defined(__XOPEN_OR_POSIX) */ - #if defined(__STDC__) - /* large file compilation environment setup */ #if !defined(_LP64) && _FILE_OFFSET_BITS == 64 #ifdef __PRAGMA_REDEFINE_EXTNAME #pragma redefine_extname readdir readdir64 #pragma redefine_extname scandir scandir64 --- 69,78 ----
*** 96,118 **** #define alphsort64 alphasort #endif #endif /* _LP64 && _LARGEFILE64_SOURCE */ extern DIR *opendir(const char *); ! #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || \ defined(_ATFILE_SOURCE) extern DIR *fdopendir(int); extern int dirfd(DIR *); #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ... */ ! #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ! extern int scandir(const char *, struct dirent *(*[]), int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)); extern int alphasort(const struct dirent **, const struct dirent **); ! #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) */ extern struct dirent *readdir(DIR *); #if defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) || \ defined(_XOPEN_SOURCE) extern long telldir(DIR *); extern void seekdir(DIR *, long); --- 96,120 ---- #define alphsort64 alphasort #endif #endif /* _LP64 && _LARGEFILE64_SOURCE */ extern DIR *opendir(const char *); ! #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || defined(_XPG7) || \ defined(_ATFILE_SOURCE) extern DIR *fdopendir(int); extern int dirfd(DIR *); #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ... */ ! ! #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || defined(_XPG7) ! extern int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)); extern int alphasort(const struct dirent **, const struct dirent **); ! #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ... */ ! extern struct dirent *readdir(DIR *); #if defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) || \ defined(_XOPEN_SOURCE) extern long telldir(DIR *); extern void seekdir(DIR *, long);
*** 123,167 **** /* transitional large file interface */ #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \ !defined(__PRAGMA_REDEFINE_EXTNAME)) extern struct dirent64 *readdir64(DIR *); #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ! extern int scandir64(const char *, struct dirent64 *(*[]), int (*)(const struct dirent64 *), int (*)(const struct dirent64 **, const struct dirent64 **)); extern int alphasort64(const struct dirent64 **, const struct dirent64 **); #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) */ #endif - #else - - extern DIR *opendir(); - #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || \ - defined(_ATFILE_SOURCE) - extern DIR *fdopendir(); - extern int dirfd(); - #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ... */ - extern struct dirent *readdir(); #if defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) || \ defined(_XOPEN_SOURCE) - extern long telldir(); - extern void seekdir(); - #endif /* defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) ... */ - extern void rewinddir(); - extern int closedir(); - - /* transitional large file interface */ - #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \ - !defined(__PRAGMA_REDEFINE_EXTNAME)) - extern struct dirent64 *readdir64(); - #endif - - #endif - - #if defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) || \ - defined(_XOPEN_SOURCE) #define rewinddir(dirp) seekdir(dirp, 0L) #endif /* * readdir_r() prototype is defined here. --- 125,144 ---- /* transitional large file interface */ #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \ !defined(__PRAGMA_REDEFINE_EXTNAME)) extern struct dirent64 *readdir64(DIR *); #if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) ! extern int scandir64(const char *, struct dirent64 ***, int (*)(const struct dirent64 *), int (*)(const struct dirent64 **, const struct dirent64 **)); extern int alphasort64(const struct dirent64 **, const struct dirent64 **); #endif /* defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) */ #endif #if defined(__EXTENSIONS__) || !defined(_POSIX_C_SOURCE) || \ defined(_XOPEN_SOURCE) #define rewinddir(dirp) seekdir(dirp, 0L) #endif /* * readdir_r() prototype is defined here.
*** 180,191 **** #if defined(__EXTENSIONS__) || defined(_REENTRANT) || \ !defined(__XOPEN_OR_POSIX) || (_POSIX_C_SOURCE - 0 >= 199506L) || \ defined(_POSIX_PTHREAD_SEMANTICS) - #if defined(__STDC__) - #if !defined(_LP64) && _FILE_OFFSET_BITS == 32 #if (_POSIX_C_SOURCE - 0 >= 199506L) || defined(_POSIX_PTHREAD_SEMANTICS) #ifdef __PRAGMA_REDEFINE_EXTNAME --- 157,166 ----
*** 241,310 **** /* transitional large file interface */ extern int readdir64_r(DIR *_RESTRICT_KYWD, struct dirent64 *_RESTRICT_KYWD, struct dirent64 **_RESTRICT_KYWD); #endif - #else /* __STDC__ */ - - #if !defined(_LP64) && _FILE_OFFSET_BITS == 32 - - #if (_POSIX_C_SOURCE - 0 >= 199506L) || defined(_POSIX_PTHREAD_SEMANTICS) - - #ifdef __PRAGMA_REDEFINE_EXTNAME - #pragma redefine_extname readdir_r __posix_readdir_r - extern int readdir_r(); - #else /* __PRAGMA_REDEFINE_EXTNAME */ - - extern int __posix_readdir_r(); - - #ifdef __lint - #define readdir_r __posix_readdir_r - #else /* !__lint */ - - static int - readdir_r(DIR *_RESTRICT_KYWD __dp, struct dirent *_RESTRICT_KYWD __ent, - struct dirent **_RESTRICT_KYWD __res) - { - return (__posix_readdir_r(__dp, __ent, __res)); - } - - #endif /* !__lint */ - #endif /* __PRAGMA_REDEFINE_EXTNAME */ - - #else /* (_POSIX_C_SOURCE - 0 >= 199506L) || ... */ - - extern struct dirent *readdir_r(); - - #endif /* (_POSIX_C_SOURCE - 0 >= 199506L) || ... */ - - #else /* !_LP64 && _FILE_OFFSET_BITS == 32 */ - - #if defined(_LP64) - #ifdef __PRAGMA_REDEFINE_EXTNAME - #pragma redefine_extname readdir64_r readdir_r - #else - #define readdir64_r readdir - #endif - #else /* _LP64 */ - #ifdef __PRAGMA_REDEFINE_EXTNAME - #pragma redefine_extname readdir_r readdir64_r - #else - #define readdir_r readdir64_r - #endif - #endif /* _LP64 */ - extern int readdir_r(); - - #endif /* !_LP64 && _FILE_OFFSET_BITS == 32 */ - - #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \ - !defined(__PRAGMA_REDEFINE_EXTNAME)) - /* transitional large file interface */ - extern int readdir64_r(); - #endif - - #endif /* __STDC__ */ - #endif /* defined(__EXTENSIONS__) || defined(_REENTRANT)... */ #ifdef __cplusplus } #endif --- 216,225 ----