Передача аргументов командной строки из одной программы в другую - C (СИ)
Формулировка задачи:
Добрый день! Вот следующее задание
Программа должна запускать тестируемую программу, передавая ей исходные данные (4 вещественных числа) в качестве аргументов командной строки. Если тестируемая программа в качестве возвращаемого значения возвращает нуль, программа должна...
Подскажите пожалуйста как именно можно вызвать тестируемую программу с передачей аргументов командной строки
Решение задачи: «Передача аргументов командной строки из одной программы в другую»
textual
Листинг программы
//http://www.codenet.ru/progr/cpp/sprd/
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <locale.h>
int main(int argc, char* argv[])
{
int i;
float s=0;
setlocale(LC_ALL,"Russian_russia.1251");
if(argc==1)
{
printf("Процесс А\n");
if(!spawnl(P_WAIT,argv[0],"--","1,2","2,5","3,7","5,9",NULL)) printf("Не знаю чего\n");
system("pause");
return 0;
}
else
{
for(i=1; i<argc; i++) s+=atof(argv[i]);
printf("Процесс Б сумма=%f\n",s);
system("pause");
return 0;
}
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция main, принимающая аргументы командной строки
- Переменная i инициализируется значением 0
- Переменная s инициализируется значением 0
- Устанавливается русскоязычная локаль с кодовой страницей 1251
- Проверяется, равна ли аргументация 1. Если да, то выполняется блок кода для процесса А
- Если аргументация больше 1, то выполняется блок кода для процесса Б
- В цикле происходит суммирование всех переданных аргументов
- Выводится сообщение с результатом суммирования
- Выполняется пауза для ознакомления с результатом
- Возвращается 0, завершая выполнение программы