#include <dirent.h>
dirent.h
structDIR
structure describing an open directory.
| int | __dd_fd | file descriptor associated with directory |
| size_t | __dd_loc | offset in current buffer |
| size_t | __dd_size | amount of data returned |
| char * | __dd_buf | data buffer |
| int | __dd_len | size of data buffer |
| long | __dd_seek | magic cookie returned |
| long | __padding | (__dd_rewind space left for bincompat) |
| int | __dd_flags | flags for readdir |
| __darwin_pthread_mutex_t | __dd_lock | for thread locking |
| struct _telldir * | __dd_td | telldir position recording |
typedefDIR
typedef struct DIR DIR;
functionclosedir
__DARWIN_ALIAS(closedir) int closedir(DIR *)
man page · August 1, 2020
closedir(3) — directory operationsfunctionopendir
__DARWIN_ALIAS_I(opendir) DIR *opendir(const char *)
man page · August 1, 2020
opendir(3) — directory operationsfunctionreaddir
__DARWIN_INODE64(readdir) struct dirent *readdir(DIR *)
man page · August 1, 2020
readdir(3) — directory operationsfunctionreaddir_r
__deprecated_msg("This function cannot be used safely as it does not take into account the variability of {NAME_MAX}. It is highly recommended that you use readdir(3) instead.") __DARWIN_INODE64(readdir_r) int readdir_r(DIR *, struct dirent *, struct dirent **)
deprecated
man page · August 1, 2020
readdir_r(3) — directory operationsfunctionrewinddir
__DARWIN_ALIAS_I(rewinddir) void rewinddir(DIR *)
man page · August 1, 2020
rewinddir(3) — directory operationsfunctionseekdir
__DARWIN_ALIAS_I(seekdir) void seekdir(DIR *, long)
man page · August 1, 2020
seekdir(3) — directory operationsfunctiontelldir
__DARWIN_ALIAS_I(telldir) long telldir(DIR *)
man page · August 1, 2020
telldir(3) — directory operationsfunctionfdopendir
__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0) __DARWIN_ALIAS_I(fdopendir) DIR *fdopendir(int)
man page · August 1, 2020
fdopendir(3) — directory operationsfunctionalphasort
__DARWIN_INODE64(alphasort) int alphasort(const struct dirent **, const struct dirent **)
man page · June 25, 2025
alphasort(3) — scan a directoryfunctiondirfd
__OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0) int dirfd(DIR *dirp)
man page · August 1, 2020
dirfd(3) — directory operationsfunctionscandir
__DARWIN_INODE64(scandir) int scandir( const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **) )
man page · June 25, 2025
scandir(3) — scan a directoryfunctionscandir_b
__DARWIN_INODE64(scandir_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) int scandir_b( const char *, struct dirent ***, int (^)(const struct dirent *) __scandir_noescape, int (^)(const struct dirent **, const struct dirent **) __scandir_noescape )
man page · June 25, 2025
scandir_b(3) — scan a directoryfunctionfdclosedir
__API_AVAILABLE(macos(26.4), ios(26.4), watchos(26.4), tvos(26.4), visionos(26.4)) int fdclosedir(DIR *)
man page · August 1, 2020
fdclosedir(3) — directory operationsfunctionfdscandir
__DARWIN_INODE64(fdscandir) __API_AVAILABLE(macos(26.4), ios(26.4), watchos(26.4), tvos(26.4), visionos(26.4)) int fdscandir( int, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **) )
man page · June 25, 2025
fdscandir(3) — scan a directoryfunctionfdscandir_b
__DARWIN_INODE64(fdscandir_b) __API_AVAILABLE(macos(26.4), ios(26.4), watchos(26.4), tvos(26.4), visionos(26.4)) int fdscandir_b( int, struct dirent ***, int (^)(const struct dirent *) __scandir_noescape, int (^)(const struct dirent **, const struct dirent **) __scandir_noescape )
man page · June 25, 2025
fdscandir_b(3) — scan a directoryfunctionscandirat
__DARWIN_INODE64(scandirat) __API_AVAILABLE(macos(26.4), ios(26.4), watchos(26.4), tvos(26.4), visionos(26.4)) int scandirat( int, const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **) )
man page · June 25, 2025
scandirat(3) — scan a directoryfunctionscandirat_b
__DARWIN_INODE64(scandirat_b) __API_AVAILABLE(macos(26.4), ios(26.4), watchos(26.4), tvos(26.4), visionos(26.4)) int scandirat_b( int, const char *, struct dirent ***, int (^)(const struct dirent *) __scandir_noescape, int (^)(const struct dirent **, const struct dirent **) __scandir_noescape )
functiongetdirentries
/* * 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")
int getdirentries(int, char *_LIBC_COUNT(__nbytes), int __nbytes, long *)man page · October 5, 2023
getdirentries(2) — "get directory entries in a filesystem independent format"function__opendir2
__DARWIN_ALIAS_I(__opendir2) DIR *__opendir2(const char *, int)