closedir()

Закрыть директорию

Прототип:

#include <dirent.h>
int closedir( DIR *dirp );

Аргументы:

dirp
Указатель на директорию, которую необходимо закрыть.

Библиотека:

libc

Описание:

Функция closedir() закрывает директорию, определяемую dirp, и освобождает память, выделенную opendir().


Note: Результат использования потока, связанного с директорией, после вызова функции семейства exec*() или spawn*() не определен. После вызова функции fork() родительский или дочерний процесс (но не оба) может продолжить обработку потока, связанного с директорией, используя функции readdir() и rewinddir(). Если и родительский, и дочериний процессы используют эти функции, результат не определен. Функцию closedir() может вызвать один или оба процесса.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Аргумент dirp не ссылается на поток, связанный с открытой директорией.
EINTR
Вызов closedir() был прерван сигналом.

Примеры:

Получить список файлов, содержащихся в директории /home/kenny:

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
int main( void )
{
DIR *dirp;
struct dirent *direntp;
dirp = opendir( "/home/kenny" );
if ( dirp != NULL )
{
for ( ; ; )
{
direntp = readdir( dirp );
if ( direntp == NULL )
{
break;
}
printf( "%s\n", direntp->d_name );
}
closedir( dirp );
return (EXIT_SUCCESS);
}
return EXIT_FAILURE;
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

struct dirent, errno, opendir(), readdir(), readdir_r(), rewinddir(), seekdir(), telldir()




Предыдущий раздел: Описание API системной библиотеки