Logo GBNhost.com — скидка на VPS сервера 50 процентов! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

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

Сверхбыстрый хостинг от 69 р./мес., VPS от 299 р./мес.

Бесплатно: администрирование + ISPmanager + DDoS защита + SSL + 7 дней тестовый период

Скидка 50% на первый месяц VPS и хостинга по промокоду CITFORUM

Хостинг в Европе для новичков (от 25 руб/мес) и VIP-хостинг для профессионалов (от 1000 руб/мес)

Скидка 25% на все тарифы хостинга по промокоду STDCITF

Бесплатно: тест на 30 дней!

Ваш идеальный сервер от 4$/мес. Все включено:

- Администрирование и решение проблем 24/7
- Перенос проектов без рисков и простоев.
- Круглосуточный мониторинг доступности сайтов.
- Защита от DDoS атак.

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 заставить ее вернуть ненулевое значение.

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

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

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

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

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

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

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

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — 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
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...