"tag_17_82" id="tag_17_82">

NAME

closedir — close a directory stream

SYNOPSIS

#include <dirent.h>

int closedir(DIR *
dirp);

DESCRIPTION

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().

RETURN VALUE

Upon successful completion, closedir() shall return 0; otherwise, -1 shall be returned and errno set to indicate the error.

ERRORS

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.

The following sections are informative.

EXAMPLES

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); ...

APPLICATION USAGE

None.

RATIONALE

None.

FUTURE DIRECTIONS

None.

SEE ALSO

dirfd , fdopendir

XBD <dirent.h>

CHANGE HISTORY

First released in Issue 2.

Issue 6

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:

Issue 8

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().

End of informative text.