|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||||||
Поиск исполняемых файлов03.04.2011, 17:27. Показов 8061. Ответов 41
Метки нет (Все метки)
У меня такая задача: найти в заданном каталоге и всех его подкаталогах все исполняемые файлы. Диапазон (мин. мах.) размеров файлов - первый и второй аргумент командной строки. Имя каталога - третий аргумент. Процедура поиска для каждого подкаталога должна запускаться в отдельном потоке.Число запущенных потоков в любой момент времени не должно превышать N (вводится пользователем).
Я вроде разобрался с тем, как 3-ий аргумент сделать именем каталога. Первое, что непонятно, это: исполняемые файлы и их диапазон. Как можно их выявить и задать диапазон?
0
|
||||||
| 03.04.2011, 17:27 | |
|
Ответы с готовыми решениями:
41
Подсчет исполняемых файлов Компилятор Си для бинарных исполняемых файлов
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 14.04.2011, 21:41 | |
|
нет. вам нужно место для strlen(param) кстати нахрена вы его постоянно кастуете + '/' + strlen(d_name) + '\0'
так это и проверяйте.
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 14.04.2011, 22:09 [ТС] | |
|
Проверяю, но все равно после вывода всех данных - ошибка сегментирования.
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 14.04.2011, 22:11 | |
|
Давайте что ли еще раз код посмотрим, полностью. Или подождите минут 30 допишу что начал неделю назад.
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||||||
| 14.04.2011, 22:25 [ТС] | ||||||
|
Получился довольно маленький и удобный код:
0
|
||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|||||||||||
| 14.04.2011, 23:17 | |||||||||||
|
Извиняйте, с ходу не понимаю где именно оно падает, если актуально завтра еще посмотрю.
Гляньте, как у меня получилось.
и тест к этой фигне
Добавлено через 19 минут Упс. вырезал vis.h для совместимости с линуксом и внес ошибку 94я строка должно быть vsnprintf
1
|
|||||||||||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 14.04.2011, 23:34 [ТС] | |
|
Да, конечно актуально.
А как вашу программу откампилировать правильно возможно(просто в своей программе мне достаточно написать gcc 3.c -lpthread -o 3,а тут чего-то еще нехватает ). На написание этого кода целая жизнь уйдет! Я где-то половину вещей, описанных в коде, вижу впервые. Осталось со своим кодом разобраться и за Вашь взяться, но тут у Вас поспрашивать придется, а то сам не смогу разобраться.
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 14.04.2011, 23:37 | |
|
да так же, может я какой-то bsdизм забыл убрать (но на debian lлинуксе собралось и прошло тест)
Покажите как именно ругается.
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 14.04.2011, 23:59 [ТС] | |
|
А нет, все нормально, это я что-то напутал, все работает, извиняюсь за ложную тревогу.
usage: 3 [-m <min>] [-M <max>] [-t <threads>] [path] запуск: ./3 0 3000 6 /usr ??
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|||||||||||
| 15.04.2011, 00:33 | |||||||||||
|
Похоже вам спать пора)))
-m минимальное значение -M максимальное -t сколько нитей можно запустить в параллель
кажется запинал ваш вариант, походу readdir() падает если DIR не корретный. Как вывод - проверять все, что может вернуть ошибку.
0
|
|||||||||||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 15.04.2011, 00:37 [ТС] | |
|
У Вас все просто идеально работает! Вы волшебник. Но мне совесть не позволит и преподаватель не примет(да и не поверит) такую сложную и навороченую вещицу. В ней мне еще разбиратся и разбираться. Но я надеюсь мой код можно еще реанимировать и поставить на ноги...
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 15.04.2011, 00:44 | |
|
Да не пугайтесь вы так, на самом деле все просто, и принципиально устроенно также как у вас.
Вместо массивов очереди (основная разница - нет ограничений по размеру) операции над которыми защищены мъютексом, а во стольном очень похоже.
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 15.04.2011, 00:55 [ТС] | |
|
Попробывал Ваш новый вариантик и, я так понимаю, сробатывает else т.е. маловато места
0
|
|
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 15.04.2011, 00:57 | |
|
Не, я почти уверен, что сегфолт был на readdir(NULL);
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|||||||||||
| 15.04.2011, 02:45 [ТС] | |||||||||||
заталкиваем данные в path.
Вроде как, мы должны выводить данные, но мы возвращаемся на начало?
0
|
|||||||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|||
| 15.04.2011, 08:27 | |||
0
|
|||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||
| 15.04.2011, 11:54 [ТС] | ||
Ну вот смотрите: я задаю кал-во N и на этом всё: пошел работать поток, а как же нам получать данные на экране.
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 15.04.2011, 14:57 | |
|
28я строка вывод на stdout, ниже вывод какой-то файл.
Тут то все нормально, проблема одна - работает одна нить. Нужно придумать как запускать еще N-1 ниток.
0
|
|
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
||||||
| 15.04.2011, 15:49 [ТС] | ||||||
|
Не совсем понятно, но может прокатит?
0
|
||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||||||
| 15.04.2011, 16:08 | ||||||
|
Прокатит это в смысле удастся ли впарить это преподователю?)))
Маловероятно. Зачем вам пускать одновременно N одинаковых нитей, потом еще сколько-то, потом еще одну, ожидать завершения последней (а кто сказал что она завершиться позже других?)? Сейчас у вас так: main() запускает одну нить в которой рекурсивно обходиться дерево ФС.
заменить вызов func_thread() на ее же запуск в отдельной нити. Ну и перед выходом нужно ждать завершения всех потоков (pthread_join) а не только последнего.
0
|
||||||
|
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
|
|
| 16.04.2011, 02:07 [ТС] | |
|
Т.е. для каждой и-той нити запускать func_thread() и тут же ожидать ее завершения. Потом следующую и тоже ждать ее завершения и т.д ?
0
|
|
| 16.04.2011, 02:07 | |
|
Исследование исполняемых файлов Каталоги исполняемых файлов Копирование исполняемых файлов Чтение бинарных исполняемых файлов Проблема с загрузкой исполняемых файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|