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 ----