Страница 103 из 253
flags
Набор флагов, объединяемых побитовым ИЛИ, которые указывают, как nftw() должна обрабатывать иерархию.
Интерфейс nftw() имеет два отдельных набора флагов. Одни набор контролирует саму nftw() (аргумент flags функции nftw()). Другой набор передается предоставленной пользователем функции, которую вызывает nftw() (аргумент flags для (*fn)()). Однако, интерфейс запутывает, поскольку имена обоих наборов флагов начинаются с префикса 'FTW_'. Мы постараемся сделать все, чтобы это прояснить по ходу дела. В табл. 8.3 представлены флаги, которые контролируют nftw().
Таблица 8.3. Управляющие флаги для nftw()
Флаг Значение FTW_CHDIR При установке перед открытием каждого из каталогов сначала осуществляется переход в него. Это действие более эффективно, но вызывающее приложение должно быть готово оказаться в другом каталоге, когда nftw() завершится FTW_DEPTH При установке осуществляется «сначала глубокий поиск». Это означает, что все файлы и подкаталоги обрабатываются до того, как будет обработан сам каталог FTW_MOUNT При установке остается в той же самой смонтированной файловой системе. Это более специализированная опция FTW_PHYS При установке не следует по символическим ссылкам