LINUX.ORG.RU

Фильтр в функции scandir


0

0

Необходимо получить список файлов из директории, удовлетворяющих шаблону "*name*"

В мане объявлено

int scandir (const char *dir, struct dirent ***namelist,

int(*select)(const struct dirent *),

int(*compar)(const struct dirent **, const struct dirent **));

В качестве функции сортировки предложены alphasort() и versionsort(), а вот фильтр, так понимаю, нужно писать свой.

int check (struct dirent * compare)

{

if (strsrt (compare->d_name, "name"))

return (1);

else

return (0);

}

Ворнинг при компиляции о несовместимости типов. Как должен выглядеть заголовок функции? Какой аргумент ей подсунуть?

телепаты в отпуске... ;)

anonymous
()

во первых -- check должна принимать указатель на константный dirent.

Во вторых, непонятно что такое strsrt

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

strstr - стандартная функция - поиск подстроки в строке /* http://www.linuxdoc.ru:81/manpages/man3/string.3.html */

А исправление struct dirent на const struct dirent убрало ворнинг, но задача все-равно не решается...

Как понять, когда запускается select и как она должна работать?

Correra
() автор топика
Ответ на: комментарий от Correra

Решилось. Ошибки были не в этом куске кода =/ Да, косяк.

P.S. > телепаты в отпуске... ;) anonymous (*) (02.06.2007 6:19:26)

Лучше б анонимы в отпуск ушли.

Correra
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.