Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
Гость
1 месяц в сервисе
Был онлайн 1 месяц назад

1. Найти совпадающие по содержимому файлы в двух заданных каталогах (аргументы 1
и 2 командной строки) и всех их подкаталогах. Вывести на консоль и в файл (аргумент 3
командной строки) полный путь, размер, дату создания, права доступа, номер индексного
дескриптора.

2.Написать программу поиска заданной пользователем комбинации из m
байт (m <255) во всех файлах заданного каталога. Главный процесс
открывает каталог и запускает для каждого файла каталога отдельный
процесс поиска заданной комбинации из m байт. Каждый процесс
выводит на экран свой pid, полный путь к файлу, общее число
просмотренных байт и результаты (сколько раз найдена комбинация)
поиска (все в одной строке). Число одновременно работающих процессов
не должно превышать N (вводится пользователем). Проверить работу
программы для каталога /etc и строки «ifconfig».

3. Создать дерево процессов согласно варианта индивидуального задания.
Процессы непрерывно обмениваются сигналами согласно табл. 2 . Запись в
таблице 1 вида: 1->(2,3,4,5) означает, что исходный процесс 0 создаёт дочерний
процесс 1, который, в свою очередь, создаёт дочерние процессы 2,3,4,5. Запись
в таблице 2 вида: 1->(2,3,4) SIGUSR1 означает, что процесс 1 посылает
дочерним процессам 2,3,4 одновременно (т.е. за один вызов kill() ) сигнал
SIGUSR1.Каждый процесс при получении или посылке сигнала выводит на
консоль информацию в следующем виде:
N pid ppid послал/получил USR1/USR2 текущее время (мксек)
где N-номер сына по рис. 1
Процесс 1, после получения 101 –го по счету сигнала SIGUSR, посылает
сыновьям сигнал SIGTERM и ожидает завершения всех сыновей, после чего
завершается сам. Процесс 0 ожидает завершения работы процесса 1 после чего
Отец
Сын 1 Сын 2
завершается сам. Сыновья, получив сигнал SIGTERM, завершают работу с
выводом на консоль сообщения вида:
pid ppid завершил работу после X-го сигнала SIGUSR1 и Y-го сигнала
SIGUSR2
где X, Y – количество посланных за все время работы данным сыном сигналов
SIGUSR1 и SIGUSR2
Для создания правильной последовательности сигналов в
соответствие с таблицей задания необходимо для каждого процесса
написать свой обработчик сигналов в котором он (процесс) принимает
сигнал от предыдущего (в таблице) процесса и посылает следующему (в
таблице) процессу!!
Во всех заданиях должен быть контроль ошибок (если к какому-либо
каталогу нет доступа, необходимо вывести соответствующее сообщение и
продолжить выполнение).
Вывод сообщений об ошибках должен производиться в стандартный поток
вывода сообщений об ошибках (stderr) в следующем виде:
имя_модуля: текст_сообщения.
Пример: pid: 1.exe: Error open file: 1.txt
Имя модуля, имя файла берутся из аргументов командной строки.
1-ая картинка  - дерево сигналов
2-ая картинка - последовательность обмена сигналами