| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > проблемы со scandir |
| Автор: Smasher 5.7.2009, 16:00 | ||
Здравсвуйте. Мне вот надо написать обход каталога на с++ в Linux. Для этого использую функцию scandir но она как то сортирует по неизвестному критарию, даже когда ставлю параметр alphasort. Вот привожу код:
Если ставлю свою функцию на мето параметра функции сортировки, т.е. вместо alphasort свою функцию, то ругается на это. Так же при текущих подключенных библиотеках не находит функцию free хотя она лежит в #include <dirent.h>, а она подключена. Заранее благодарен. Особенно жду ответа на вопрос как огрганизовать правильную сортировку! |
| Автор: nickless 5.7.2009, 16:29 |
| Оно сортирует правильно, просто ты выводишь в обратном порядке. Когда примеры из мана копипастишь, смотреть надо что они делают ;) free из <cstdlib> ЗЫ Код у тебя - уже как-бы не C, но еще не совсем C++ |
| Автор: Smasher 5.7.2009, 16:53 |
| вот я првиел как сортирует. Мои документы winclient progs myac System Volume Information RECYCLER Patch Linux .. . $RECYCLE.BIN Press [Enter] to close the terminal ... видно же что не по парядку, даже не в обратном порядке, ведь progs и Patch даже близко рядом не находятся.. а я понял оно сортирует отдельно ещё по регистарм, но как от этого избавится? |
| Автор: Smasher 5.7.2009, 18:53 |
| да я нашёл их можно сравнить командой ‘stricmp’, но подключив все нужные библиотеки(#include <stdio.h> #include <string.h>) мне выдало: ошибка: нет декларации ‘stricmp’ в этой области видимости в какой она находится библиотеке? |
| Автор: Smasher 5.7.2009, 22:29 |
| помогите плиззз |
| Автор: andrew_121 6.7.2009, 00:26 |
| Читай маны внимательней. http://www.opennet.ru/cgi-bin/opennet/man.cgi?topic=scandir&category=3 Вместо stricmp() нужно использовать strncasecmp() |