closedir — close a directory stream
#include <dirent.h>
int closedir(DIR *dirp);
The closedir() function shall close the directory stream referred to by the argument dirp. Upon return, the value of dirp may no longer point to an accessible object of the type DIR. If there is a file descriptor associated with the stream (whether opened by opendir() or dirfd(), or passed to fdopendir() when creating the stream), that file descriptor shall be closed by closedir().
Upon successful completion, closedir() shall return 0; otherwise, -1 shall be returned and errno set to indicate the error.
The closedir() function may fail if:
- [EBADF]
- The dirp argument does not refer to an open directory stream.
- [EINTR]
- The closedir() function was interrupted by a signal.
Closing a Directory Stream
The following program fragment demonstrates how the closedir() function is used.
... DIR *dir; struct dirent *dp; ... if ((dir = opendir (".")) == NULL) { ... }
while ((dp = readdir (dir)) != NULL) { ... }
closedir(dir); ...
None.
None.
None.
XBD <dirent.h>
First released in Issue 2.
In the SYNOPSIS, the optional include of the <sys/types.h> header is removed.
The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:
The requirement to include <sys/types.h> has been removed. Although <sys/types.h> was required for conforming implementations of previous POSIX specifications, it was not required for UNIX applications.
The [EINTR] error condition is added as an optional error condition.
Austin Group Defect 1360 is applied, clarifying that type DIR always has the ability to store a file descriptor; what is optional is whether one is opened by opendir().
return to top of page