Как передать переменную в программе c в качестве аргумента в командный файл? - PullRequest
0 голосов
/ 15 июля 2011
include<stdio.h>
include<stdlib.h>
  int main()
    {
      char a[20]="hello world";
system("./cool.bat a");\\here I need to pass the array as argument to batch file
       }

Полагаю, вы поняли, что я хотел сказать.Я хочу передать массив программы c, в качестве аргумента для пакетного файла.Но если я скажу

   system("./omnam.bat a") \\ its taking a as an argument

Как мне это сделать?Как я могу отправить переменную или массив с программой в качестве аргумента в командный файл.Предположим, что в программе ac есть целое число I, содержащее значение 15. Как передать его в качестве аргумента в пакетный файл?Может кто-нибудь, пожалуйста, опубликуйте пример этого с некоторым C-файлом и командным файлом. Спасибо

Ответы [ 3 ]

2 голосов
/ 15 июля 2011

вам нужно построить char [], состоящий из пакетной команды и содержимого переменной для передачи ей

1 голос
/ 15 июля 2011

Создайте строку во время выполнения, используя snprintf:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    char a[20]="hello world";
    char command[256];
    snprintf(command, sizeof(command), "./cool.bat %s", a);
    system(command);
    return 0;
}

Однако имейте в виду, что функция system очень опасна, особенно когда вы передаете непостоянные строки. * В целях безопасности быть абсолютно уверенным, что в него нельзя передавать произвольные строки, созданные пользователем .

0 голосов
/ 15 июля 2011

Возможно, вы можете написать командный файл с использованием стандартного ввода-вывода и затем выполнить его? Должно быть так же верно?

...