[cdev] исправление find
Grigoriy A. Sitkarev
sitkarev на komitex.ru
Чт Мар 25 16:31:59 MSK 2010
C вами вообще отдельная песня, потому что мне надо не чтобы вы правили
ошибки свои, а начали разбираться с программированием вообще.
Я тут немного посидел, и сделал для вас пример один, чтобы вы посмотрели
как можно удобно обвернуть обход каталогов. Хотя это и всей рассылки
касается, пусть тоже смотрят.
Утилита find должна иметь ещё специальную опцию -L, если она есть то в
таком случае по ссылкам нужно ходить. Но в таком случае может быть
проблема с их зацикливанием, надо следить. Здесь есть вариант решения
такой задачи.
Конечно, этот файл я бы разбил на несколько: macros.h, xfuncs.c,
traverse-directory.c и т.д. но для удобства в списке я всё в одном файле
сохраняю. Там могут быть ошибки, но в целом вроде бы всё работает.
Посмотрите, как сделаны опции:
FOLLOW_SYMLINKS - следовать за символическими ссылками
PREVENT_LOOPING - обнаруживать зацикливание каталогов
SKIP_DOT_FILES - пропускать файлы с точкой
DIRS_ONLY - сканировать только каталоги
Посмотрите вообще сам принцип организации механизма взаимодействия с
пользователем через callbacks.
Компилировать можно так:
$ gcc -O0 -g -Wall -G_GNU_SOURCE -o find_utils find_utils.c
Поменяйте в примере каталог, который вы будете обходить потому что там у
меня мой домашний стоит.
Жду вопросов.
--
Г.А.
lenad89 пишет:
> Здравствуйте, Григорий Александрович.
>
> Мы внесли некоторые изменения.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> cdev mailing list
> cdev на wiki.syktsu.ru
> http://wiki.syktsu.ru/cgi-bin/mailman/listinfo/cdev
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: find_utils.c
Type: text/x-csrc
Size: 14507 bytes
Desc: отсутствует
URL: <http://amplab.syktsu.ru/pipermail/cdev/attachments/20100325/68e7f3cf/attachment.c>
Подробная информация о списке рассылки cdev