1#ifndef _DIRENT_H 2#define _DIRENT_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#include <features.h> 9 10#define __NEED_ino_t 11#define __NEED_off_t 12#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 13#define __NEED_size_t 14#endif 15 16#include <bits/alltypes.h> 17 18#include <bits/dirent.h> 19 20typedef struct __dirstream DIR; 21 22#define d_fileno d_ino 23 24int closedir(DIR *); 25DIR *fdopendir(int); 26DIR *opendir(const char *); 27struct dirent *readdir(DIR *); 28int readdir_r(DIR *__restrict, struct dirent *__restrict, struct dirent **__restrict); 29void rewinddir(DIR *); 30int dirfd(DIR *); 31 32int alphasort(const struct dirent **, const struct dirent **); 33int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **)); 34 35#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 36void seekdir(DIR *, long); 37long telldir(DIR *); 38#endif 39 40#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 41#define DT_UNKNOWN 0 42#define DT_FIFO 1 43#define DT_CHR 2 44#define DT_DIR 4 45#define DT_BLK 6 46#define DT_REG 8 47#define DT_LNK 10 48#define DT_SOCK 12 49#define DT_WHT 14 50#define IFTODT(x) ((x)>>12 & 017) 51#define DTTOIF(x) ((x)<<12) 52int getdents(int, struct dirent *, size_t); 53#endif 54 55#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) 56#define dirent64 dirent 57#define readdir64 readdir 58#define readdir64_r readdir_r 59#define scandir64 scandir 60#define alphasort64 alphasort 61#define off64_t off_t 62#define ino64_t ino_t 63#define getdents64 getdents 64#endif 65 66#ifdef __cplusplus 67} 68#endif 69 70#endif 71