The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### 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 a file descriptor is used to implement type DIR, that file descriptor shall be closed.

#### 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:

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

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]