![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
eu8cc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
Помогите с программкой, не могу понять как написать ее:
написать программу, находящую в заданном каталоге и всех его подкаталагах все файлы заданного размера. Имя каталога задается пользователем в качестве третьего аргумента командной строки. Диапазон (мин мах) размеров файлов задается пользователем в качестве первого и второго аргумента командной строки. Программа выводит результат поиска в файл(четвертый аргумент командной строки) в виде полный путь, имя файла, его размер. На консоль выводиться сообщения числа просмотренных файлов. На линуксе
если есть возможность то проверьте работает ли код |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Ну, для начала, она просто не компилируется.
![]() Ну и дурацкий вопрос - зачем стрелять из пушки по воробьям, если есть find? Или это такое учебное задание? |
|||
|
||||
eu8cc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
подправил
предложите еще как можно ее решить, вроде подправил, если есть возможность то проверте |
|||
|
||||
Фантом |
|
||||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Незаметно. Первая из упомянутых ошибок никуда не делась Вот такой командой в консоли: find "стартовый каталог" -size +<минимальный размер> -size -<максимальный размер>. Ну, например, что-то такое:
Будет искать все файлы в /home/user и подкаталогах, с размером от 800 кб до 3 Мб. Если требуется строго то поведение, которое описано выше, можно сляпать такой скрипт:
Он будет делать в точности то, что требовалось, и не надо городить огород на языке, который для таких задач не предназначен. |
||||
|
|||||
eu8cc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
а сейчас видно? )))
мне не нужен поиск с командной строки, а нужна программа которая ищет согласно заданным аргументам!!! если можете то помогите пожалуйста
Это сообщение отредактировал(а) eu8cc - 31.5.2010, 20:00 |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
||||
|
||||
eu8cc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
||||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
судя по реакции на вопросы - явно не автору топика... -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
ller |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.8.2008 Где: г. Таганрог Репутация: 2 Всего: 4 |
если дали такое задание на учебе, то надо делать. И там кстати все задания, которые кто то уже решил, разбить на подстроки, заменить в массиве ну итд итп
|
|||
|
||||
eu8cc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
У меня такое впечатление что никто здесь не разбирается в линуксе, я на большую половину решил задание, а никто не может дальше его продолжить. Или хотя бы проверить на правильность. Синтаксические ошибки я и сам вижу(где не хватает фигурной скобки, или не ту цифру поставил). Извиняюсь, но уже надоели эти разговори в пустую, сколько можно ходить около. Хочется конкретики услышать, например: вставь этот оператор, или здесь нужно что бы было так. Не хочу никого обижать, но так получается.
|
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 4 Всего: 39 |
Код за вас писать не буду, но расскажу, как эта костыльная задача решается. Все очень просто.
1. Делается рекурсивная функция
2. В ней открываете директорию (man 3 opendir) и читаете друг за дружкой все файлы в ней (man 3 readdir). 3. Если это обычный файл, смотрите его размер (man 3 stat), сравниваете с minsize и maxsize; условие проходит - пишите имя файла в out (man 3 fprintf). Если это директория, отправляетесь в рекурсию (man 7 рекурсия). 4. В main читаете аргументы командной строки и передаете их в эту функцию. 5... 6. PROFIT //int minsize,int maxsize,FILE *out - можно сделать глобальными. Добавлено через 53 секунды >У меня такое впечатление что никто здесь не разбирается в линуксе Я вам доказал, что разбираюсь в линупсе! Теперь я смогу уснуть спокойно. Фхуууу! -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 4 Всего: 49 |
Хм... а Вы не задумывались над тем, что пытаться просить кого-то Вам помочь, не удосужившись хотя бы проверить свой код на синтаксическую корректность, несколько неприлично? |
|||
|
||||
eu8cc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
Большое спасибо djamshud за разъяснения.
|
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 2 Всего: 181 |
Модератор: Перенесено из Общих вопросов по никсам
-------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
eu8cc |
|
||||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 22.10.2009 Репутация: нет Всего: нет |
Просмотрите, я правильно записал?
Добавлено @ 08:22 немного подправил
Это сообщение отредактировал(а) eu8cc - 7.6.2010, 08:25 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |