Написать программу на языке С/С++
написать две программы с идентичным функционалом, решающих задачу из
варианта, – одну для ОС Windows и одну для ОС Linux.
Задача: В файле записан ряд вещественных чисел, разделённых пробелом. Программа должна считать имя файла из первого аргумента командной строки и рассчитать сумму записанных в файл чисел. Для расчёта суммы программа должна создать N дочерних процессов (N передаётся вторым аргументом командной строки) и передать каждому из них часть полученных чисел. Каждый из дочерних процессов должен рассчитать сумму переданных ему чисел и вернуть её родительскому. Родительский процесс должен просуммировать полученные от дочерних числа и вывести на консоль итоговую сумму. Если исходный файл не существует, или в нём записано менее 2 чисел, следует вывести соответствующее сообщение для пользователя и завершить работу программы.
Для выполнения задания использовать VS Code. При выполнении необходимо учитывать следующие требования:
a. Задача считается решённой, если необходимое по варианту действие выполняется для всех допустимых входных данных.
b. Для работы с процессами (запуска, ожидания, завершения)
следует использовать только предназначенные для этого функции из
API соответствующих ОС. Внимание! Не используйте return для
завершения процесса в данной работе. Однако для файлового и
консольного ввода-вывода можно воспользоваться любыми
доступными средствами.
c. Программа должна корректно завершаться, не вызывая
аварийный останов.
d. Программа должна брать входные данные из аргументов,
переданных при запуске в консоли. В случае, если количество
переданных аргументов не равно ожидаемому, программа должна
вывести подсказку для пользователя, поясняющую правила её
(программы) использования.
e. Возвращаемые значения всех вызываемых функций должны
проверяться на предмет возникновения ошибок. В случае
возникновения ошибки необходимо вывести сообщение, оповещающее
пользователя о произошедшем, содержащее в обязательном порядке
код ошибки и её текстовое описание. В случае, если в результате
возникшей ошибки программа должна быть завершена, перед
завершением необходимо освободить все занятые ресурсы (очистить
выделенную память, закрыть открытые файлы).
f. Программа должна работать с любым количеством данных.
Если количество процессов, которые необходимо породить, больше
количества входных данных, необходимо запустить кол-во процессов,
вдвое меньшее кол-ва входных данных и вывести соответствующее
предупреждение.
Предоставлю методический материал.