|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.05.2010, 17:09 | #1 |
Регистрация: 18.03.2010
Сообщений: 6
|
Программирование под SUSE
Доброго времени суток!!!
Товарищи программисты у меня есть список вопросов по данному заданию: Написать программу, находящую в заданном каталоге и всех его подкаталогах все исполняемые файлы. Диапазон (мин. мах.) размеров файлов задаётся пользователем в качестве первого и второго аргумента командной строки. Имя каталога задаётся пользователем в качестве третьего аргумента командной строки. Программа выводит результаты поиска в файл (четвертый аргумент командной строки) в виде полный путь, имя файла, его размер. На консоль выводится общее число просмотренных файлов. Процедура поиска для каждого подкаталога должна запускаться в отдельном процессе. Каждый процесс выводит на экран свой pid, полный путь, имя и размер просмотренного файла, общее число просмотренных файлов в подкаталоге. Число запущенных процессов в любой момент времени не должно превышать N (вводится пользователем). Проверить работу программы для каталога /usr/ размер 31000 31500 N=6.. А какие файлы в линуксе исполняемые???? Т.е вид в коммандной строке будет следующий: <имя программы><мин.размер><макс.размер> <имя каталога>??? Я так понял что необходимо работать с main(argc, argv[])??? Что то если честно не воспринимается это задание.....помогите чем можете, советом, кодом))) Заранее благодарен. Последний раз редактировалось WESTnik; 07.05.2010 в 17:15. |
07.05.2010, 18:49 | #2 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,713
|
Цитата:
|
|
08.05.2010, 14:48 | #3 |
Форумчанин
Регистрация: 08.01.2010
Сообщений: 165
|
абсолютно верно, исполняемыми файлами являются файлы, для которых установлен атрибут x. Почитать про атрибуты файлов можно, например, здесь: http://www.sdteam.com/?tid=1335 (раздел "Атрибуция").
Аргументы командной строки забираются из массива agrv. В argc хранится число аргументов, а в argv сами аргументы (причём argv[0] хранит строку с названием программы). Нужно помнить, что argv - массив строк, поэтому, если вам нужно получить числа (к примеру, диапазоны размеров файлов), нужно преобразовать их из строки в int. |
08.05.2010, 14:57 | #4 | |
Unix C++ developer
Форумчанин
Регистрация: 16.04.2007
Сообщений: 651
|
Цитата:
Как уже сказали выше - все, у которых стоит атрибут x. Для определения атрибутов файлов и получения прочей информации, следует воспользоваться stat() Для чтения (получения списка всех файлов и каталогов) заданного каталога следует использовать readdir(). А распараллеливание проще всего выполнить с помощью fork(). Логика может быть примерно такой: Начинаете читать заданный каталог с помощью readdir(). Каждый следующий прочитанный файл проверяете с помощью stat(), если это каталог - выполняете fork() и в новом потокое запускаете аналогичный алгоритм. Если stat() сообщает, что текущий файл - это исполняемый файл - выводим данные на консоль. И так далее, пока не будет прочитан весь родительский каталог и возможные подкаталоги. P.S. Я намеренно не приводил в пример какие либо исходные коды, т.к. предоставленной информации более чем достаточно, что бы самостоятельно разобраться с указанными функциями, найти примеры и попробовать написать приложение. Если же возникнут конкретные проблемы в коде - пишите, постараемся помочь. |
|
03.04.2011, 20:35 | #5 |
Форумчанин
Регистрация: 29.11.2009
Сообщений: 142
|
У меня давально похожее условие на условие автора.
Я вроде разобрался с тем, как 3-ий аргумент сделать именем каталога. Первое, что непонятно, это: исполняемые файлы и их диапазон. Как можно их выявить и задать диапазон? Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование под Windows на C# | I.C.E | Помощь студентам | 3 | 29.04.2010 16:39 |
программирование под WM | Mclaren | Софт | 1 | 21.04.2010 13:28 |
программирование под Symbian | Mclaren | Помощь студентам | 1 | 09.03.2010 09:43 |
Программирование под .Net | RIO | Свободное общение | 5 | 07.01.2010 22:12 |
Программирование под nix | Simply-Art | Свободное общение | 8 | 20.03.2007 11:45 |