Linux программирование в примерах - Роббинс Арнольд
Тут можно читать бесплатно Linux программирование в примерах - Роббинс Арнольд. Жанр: Интернет издательство , год .
Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте knigi-for.me (knigi for me) или прочесть краткое содержание, предисловие (аннотацию),
описание и ознакомиться с отзывами (комментариями) о произведении.
flagsНабор флагов, объединяемых побитовым ИЛИ, которые указывают, как
nftw()Интерфейс
nftw()nftw()flagsnftw()nftw()flags(*fn)()FTW_nftw()Таблица 8.3. Управляющие флаги для
nftw()| Флаг | Значение |
|---|---|
FTW_CHDIR | При установке перед открытием каждого из каталогов сначала осуществляется переход в него. Это действие более эффективно, но вызывающее приложение должно быть готово оказаться в другом каталоге, когда nftw() |
FTW_DEPTH | При установке осуществляется «сначала глубокий поиск». Это означает, что все файлы и подкаталоги обрабатываются до того, как будет обработан сам каталог |
FTW_MOUNT | При установке остается в той же самой смонтированной файловой системе. Это более специализированная опция |
FTW_PHYS | При установке не следует по символическим ссылкам |
FTW_CHDIRstat()FTW_DEPTHchmod -R u-rx .FTW_PHYSdu8.4.3.2. Функция обратного вызова
nftw()После запуска
nftw()const char *fileИмя текущего обрабатываемого файла (каталога, символической ссылки и т.д.).
const struct stat *sbУказатель на
struct statint flagОдно из нескольких значений флагов (описанных ниже), указывающих, какой это вид файла или была ли ошибка для объекта.
struct FTW *sЭта структура предоставляет две отдельные части информации:
struct FTW { int base; /* Индекс в файле базовой части имени файла */ int level; /* Глубина этого элемента относительно точки отсчета */};Параметр
flagТаблица 8.4. Значения флагов для функции обратного вызова
nftw()| Флаг | Значение |
|---|---|
FTW_F | Объект является обычным файлом |
FTW_D | Объект является каталогом |
FTW_DNR | Объект является каталогом, который нельзя прочесть |
FTW_SL | Объект является символической ссылкой |
FTW_NS | Объект не является символической ссылкой, а stat() |
FTW_DP | Объект является каталогом, элементы которого были уже обработаны. Это может случиться, лишь когда в вызове nftw()FTW_DEPTH |
FTW_SLN | Объект является символической ссылкой, указывающей на несуществующий файл. Это может случиться, лишь когда в вызове nftw()FTW_PHYS |
struct FTW* ss->basfilefilefile + s->bases->levelФункция обратного вызова должна вернуть 0, если все нормально. Любое ненулевое возвращенное значение заставляет
nftw()nftw()longjmp()longjmp()nftw()du