Как выполнить исполняемый файл с аргументом из программы C? - PullRequest
0 голосов
/ 01 июня 2018

int s = system("./my_prog 32"); работает, но как мне ввести аргумент в качестве переменной?int a = 32; int s = ("system %d", a);, похоже, не работает ("слишком много аргументов для функции 'system'".)

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Функция system () в C принимает один аргумент типа const char *.Вот почему ваш первый пример работает (хотя ваш второй пример искажен).

Тем не менее, то, чего вы хотите, может быть достигнуто с помощью функции sprintf() в stdio.h.int a = 32; char command[80]; sprintf(command, "./my_prog %d", a); system(command);

0 голосов
/ 01 июня 2018

как ввести аргумент в качестве переменной?

Обычный метод - динамическая генерация командной строки с sprintf().Например:

char command[100];
int a = 42;
sprintf(command, "./my_prog %d", a);
int s = system(command);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...