Logo Host-telecom.com — профессиональный хостинг в Европе! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Хостинг + Certum Commercial SSL и домен в подарок

VPS: SSD, KVM, бесплатные бэкапы и администрирование 24/7

Бесплатный перенос сайта + подарки к новоселью

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

💰 Самые низкие цены на домены

🔒 Отличный хостинг на SSD c бесплатными SSL

💻 Огромнейший выбор dedicated выделенных серверов

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

FTW(3C)

НАЗВАНИЕ
ftw - обход дерева файлов

СИНТАКСИС


	#include <ftw.h>

	

	int ftw (path, fn, depth)

	char *path;

	int (*fn) ( );

	int depth;

ОПИСАНИЕ
Функция ftw рекурсивно обходит иерархию каталогов, имеющую своим корнем каталог с маршрутным именем, на которое указывает аргумент path. Для каждого объекта иерархии ftw вызывает функцию fn, передавая ей три аргумента: указатель на цепочку символов, ограниченную нулевым байтом и содержащую имя объекта; указатель на структуру stat [см. stat(2)], содержащую информацию об объекте; тип объекта (целое число). Возможны следующие значения типа объекта, описанные во включаемом файле :
FTW_F Обычный файл.
FTW_D Каталог.
FTW_DNR Каталог, недоступный на чтение.
FTW_NS объект, для которого stat не может выполниться успешно.

Если тип объекта есть FTW_DNR, подкаталоги этого каталога не просматриваются. Если тип есть FTW_NS, то структура stat будет содержать мусор. Примером объекта, который вызовет передачу fn типа FTW_NS, является файл в каталоге, доступном на чтение, но недоступном для поиска.

Функция ftw обрабатывает каталог перед обработкой его элементов.

Обход завершится тогда, когда или будет обойдено все дерево, или функция fn возвратит ненулевое значение, или возникнет ошибка при работе самой функции ftw (например, ошибка ввода/вывода). Если дерево обойдено полностью, ftw возвращает 0. Если fn возвратит ненулевое значение, то ftw прекратит обход и выдаст это значение. Если будет обнаружена ошибка при работе самой функции ftw, то она возвратит -1 и соответствующим образом установит значение переменной errno.

Функция ftw использует по одному дескриптору файла на каждый уровень дерева. Аргумент depth ограничивает количество используемых таким образом дескрипторов. Если он не больше нуля, то используется один дескриптор. Значение аргумента depth не должно быть больше, чем количество доступных для использования дескрипторов. Функция ftw будет работать быстрее, если значение depth не меньше глубины дерева.

СМ. ТАКЖЕ
stat(2), malloc(3C).

СЮРПРИЗЫ
Так как функция ftw рекурсивна, возможно аварийное завершение работы из-за выхода за границы памяти при обходе слишком глубокой файловой структуры.

ОГРАНИЧЕНИЯ
Функция ftw использует для динамического выделения памяти malloc(3C). Если ftw завершена насильственно, например, при выполнении из fn вызова longjmp или по прерыванию, то она не имеет возможности освободить память, так что выделенная память останется занятой. Безопасный способ обработки прерываний заключается в том, чтобы зафиксировать факт получения прерывания и при ближайшем вызове fn заставить ее вернуть ненулевое значение.

Мощные сервера

VPS с гибкой конфигурацией: за 1€

Мощные выделенные сервера: от 25€

Собственный Дата-Центр
Поддержка 24/7

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

ATLEX Выделенные серверы: в Европе / в России.

Виртуальные серверы: в Европе / в России.

Партнерская программа

хостинг Украина

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз FreeBSD 11.4 (1)
Пятница 19.06, 07:25

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...