Scroll to navigation

opendir(3) Library Functions Manual opendir(3)

ИМЯ

opendir, fdopendir - открывает каталог

LIBRARY

Standard C library (libc, -lc)

СИНТАКСИС

#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
DIR *fdopendir(int fd);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

fdopendir():


Начиная с glibc 2.10:
_POSIX_C_SOURCE >= 200809L
До glibc 2.10:
_BSD_SOURCE

ОПИСАНИЕ

Функция opendir() открывает поток каталога, соответствующий каталогу с именем name, и возвращает указатель на поток каталога. Поток устанавливается на первую запись в каталоге.

Функция fdopendir() похожа на opendir(), но возвращает поток каталога для каталога, на который ссылается открытый файловый дескриптор fd. После успешного вызова fdopendir(), дескриптор fd используется только внутри реализации и не должен использоваться в приложении.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

The opendir() and fdopendir() functions return a pointer to the directory stream. On error, NULL is returned, and errno is set to indicate the error.

ОШИБКИ

Доступ запрещен.
Значение fd не является подходящим файловым дескриптором, открытым для чтения.
Было достигнуто ограничение по количеству открытых файловых дескрипторов на процесс.
Достигнуто максимальное количество открытых файлов в системе.
Каталог не существует, либо name содержит пустую строку.
Недостаточно памяти для завершения операции.
Значение name не является каталогом.

ВЕРСИИ

fdopendir() is available since glibc 2.4.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
opendir(), fdopendir() Безвредность в нитях MT-Safe

СТАНДАРТЫ

Функция opendir() присутствует в SVr4, 4.3BSD и описана в стандарте POSIX.1-2001. Функция fdopendir() описана в POSIX.1-2008.

ПРИМЕЧАНИЯ

Записи имён файлов можно читать из потока каталога с помощью readdir(3).

Задействованный файловый дескриптор потока каталога может быть получен в помощью dirfd(3).

Функция opendir() устанавливает флаг close-on-exec для файлового дескриптора, указывающего на DIR *. Функция fdopendir() оставляет флаг close-on-exec не изменённым для файлового дескриптора fd. В POSIX.1-200x нет точного определения на этот счет, хотя успешный вызов fdopendir() установит флаг close-on-exec для файлового дескриптора fd.

СМОТРИТЕ ТАКЖЕ

open(2), closedir(3), dirfd(3), readdir(3), rewinddir(3), scandir(3), seekdir(3), telldir(3)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал Azamat Hackimov <azamat.hackimov@gmail.com>, Konstantin Shvaykovskiy <kot.shv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.

15 декабря 2022 г. Linux man-pages 6.03