通过C ++中的system()传递参数

时间:2015-09-30 14:53:57

标签: c++ bash shell variables

如何通过c ++中的system()命令传递命令行变量。 我尝试过使用:

string i;
i = system("./findName.sh");
i += argv[1];
cout << i;

但是当我运行它时,它为我提供了我在shell脚本中编写的错误参数数量的条件。

这是我使用&#34; ./ findName brandonw&#34;运行程序时收到的输出。哪个是我的可执行文件与我希望我的shell脚本运行的参数一起运行。

The arguments you put are:
brandonw
usage: findName.sh [only_one_argument]

2 个答案:

答案 0 :(得分:1)

将它连接到命令字符串。

string command = "./findName.sh";
command = command + " "  + argv[1];
system(command.c_str());

答案 1 :(得分:0)

稍微重新排列代码:

string i("./findName.sh ");
i += argv[1];
system(i.c_str());
cout << i;

另请注意,system并未返回std::string,而是实现定义int值。

如果您需要处理./findName.sh的输出,则需要pipe()