123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- #ifndef _DIRENT_H
- #define _DIRENT_H 1
- #include <features.h>
- __BEGIN_DECLS
- #include <bits/types.h>
- #ifdef __USE_XOPEN
- # ifndef __ino_t_defined
- # ifndef __USE_FILE_OFFSET64
- typedef __ino_t ino_t;
- # else
- typedef __ino64_t ino_t;
- # endif
- # define __ino_t_defined
- # endif
- # if defined __USE_LARGEFILE64 && !defined __ino64_t_defined
- typedef __ino64_t ino64_t;
- # define __ino64_t_defined
- # endif
- #endif
- #include <bits/dirent.h>
- #if (defined __USE_BSD || defined __USE_MISC) && !defined d_fileno
- # define d_ino d_fileno
- #endif
- #ifdef _DIRENT_HAVE_D_NAMLEN
- # define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
- # define _D_ALLOC_NAMLEN(d) (_D_EXACT_NAMLEN (d) + 1)
- #else
- # define _D_EXACT_NAMLEN(d) (strlen ((d)->d_name))
- # ifdef _DIRENT_HAVE_D_RECLEN
- # define _D_ALLOC_NAMLEN(d) (((char *) (d) + (d)->d_reclen) - &(d)->d_name[0])
- # else
- # define _D_ALLOC_NAMLEN(d) (sizeof (d)->d_name > 1 ? sizeof (d)->d_name : \
- _D_EXACT_NAMLEN (d) + 1)
- # endif
- #endif
- #ifdef __USE_BSD
- enum
- {
- DT_UNKNOWN = 0,
- # define DT_UNKNOWN DT_UNKNOWN
- DT_FIFO = 1,
- # define DT_FIFO DT_FIFO
- DT_CHR = 2,
- # define DT_CHR DT_CHR
- DT_DIR = 4,
- # define DT_DIR DT_DIR
- DT_BLK = 6,
- # define DT_BLK DT_BLK
- DT_REG = 8,
- # define DT_REG DT_REG
- DT_LNK = 10,
- # define DT_LNK DT_LNK
- DT_SOCK = 12,
- # define DT_SOCK DT_SOCK
- DT_WHT = 14
- # define DT_WHT DT_WHT
- };
- # define IFTODT(mode) (((mode) & 0170000) >> 12)
- # define DTTOIF(dirtype) ((dirtype) << 12)
- #endif
- typedef struct __dirstream DIR;
- extern DIR *opendir (__const char *__name) __THROW;
- extern int closedir (DIR *__dirp) __THROW;
- #ifndef __USE_FILE_OFFSET64
- extern struct dirent *readdir (DIR *__dirp) __THROW;
- #else
- # ifdef __REDIRECT
- extern struct dirent *__REDIRECT (readdir, (DIR *__dirp) __THROW, readdir64);
- # else
- # define readdir readdir64
- # endif
- #endif
- #ifdef __USE_LARGEFILE64
- extern struct dirent64 *readdir64 (DIR *__dirp) __THROW;
- #endif
- #if defined __USE_POSIX || defined __USE_MISC
- # ifndef __USE_FILE_OFFSET64
- extern int readdir_r (DIR *__restrict __dirp,
- struct dirent *__restrict __entry,
- struct dirent **__restrict __result) __THROW;
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT (readdir_r,
- (DIR *__restrict __dirp,
- struct dirent *__restrict __entry,
- struct dirent **__restrict __result) __THROW,
- readdir64_r);
- # else
- # define readdir_r readdir64_r
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
- extern int readdir64_r (DIR *__restrict __dirp,
- struct dirent64 *__restrict __entry,
- struct dirent64 **__restrict __result) __THROW;
- # endif
- #endif
- extern void rewinddir (DIR *__dirp) __THROW;
- #if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN
- # include <bits/types.h>
- extern void seekdir (DIR *__dirp, long int __pos) __THROW;
- extern long int telldir (DIR *__dirp) __THROW;
- #endif
- #if defined __USE_BSD || defined __USE_MISC
- extern int dirfd (DIR *__dirp) __THROW;
- # if defined __OPTIMIZE__ && defined _DIR_dirfd
- # define dirfd(dirp) _DIR_dirfd (dirp)
- # endif
- # ifndef MAXNAMLEN
- # include <bits/posix1_lim.h>
- # ifdef NAME_MAX
- # define MAXNAMLEN NAME_MAX
- # else
- # define MAXNAMLEN 255
- # endif
- # endif
- # define __need_size_t
- # include <stddef.h>
- # ifndef __USE_FILE_OFFSET64
- extern int scandir (__const char *__restrict __dir,
- struct dirent ***__restrict __namelist,
- int (*__selector) (__const struct dirent *),
- int (*__cmp) (__const void *, __const void *)) __THROW;
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT (scandir,
- (__const char *__restrict __dir,
- struct dirent ***__restrict __namelist,
- int (*__selector) (__const struct dirent *),
- int (*__cmp) (__const void *, __const void *)) __THROW,
- scandir64);
- # else
- # define scandir scandir64
- # endif
- # endif
- # if defined __USE_GNU && defined __USE_LARGEFILE64
- extern int scandir64 (__const char *__restrict __dir,
- struct dirent64 ***__restrict __namelist,
- int (*__selector) (__const struct dirent64 *),
- int (*__cmp) (__const void *, __const void *)) __THROW;
- # endif
- # ifndef __USE_FILE_OFFSET64
- extern int alphasort (__const void *__e1, __const void *__e2)
- __THROW __attribute_pure__;
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT (alphasort,
- (__const void *__e1, __const void *__e2)
- __THROW,
- alphasort64) __attribute_pure__;
- # else
- # define alphasort alphasort64
- # endif
- # endif
- # if defined __USE_GNU && defined __USE_LARGEFILE64
- extern int alphasort64 (__const void *__e1, __const void *__e2)
- __THROW __attribute_pure__;
- # endif
- # ifdef __USE_GNU
- # ifndef __USE_FILE_OFFSET64
- extern int versionsort (__const void *__e1, __const void *__e2)
- __THROW __attribute_pure__;
- # else
- # ifdef __REDIRECT
- extern int __REDIRECT (versionsort,
- (__const void *__e1, __const void *__e2)
- __THROW,
- versionsort64) __attribute_pure__;
- # else
- # define versionsort versionsort64
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
- extern int versionsort64 (__const void *__e1, __const void *__e2)
- __THROW __attribute_pure__;
- # endif
- # endif
- # ifndef __USE_FILE_OFFSET64
- extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
- size_t __nbytes,
- __off_t *__restrict __basep) __THROW;
- # else
- # ifdef __REDIRECT
- extern __ssize_t __REDIRECT (getdirentries,
- (int __fd, char *__restrict __buf,
- size_t __nbytes,
- __off64_t *__restrict __basep) __THROW,
- getdirentries64);
- # else
- # define getdirentries getdirentries64
- # endif
- # endif
- # ifdef __USE_LARGEFILE64
- extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
- size_t __nbytes,
- __off64_t *__restrict __basep) __THROW;
- # endif
- #endif
- __END_DECLS
- #endif
|