我正尝试从C++调用具有自定义输入的shell脚本。我能做的就是:在C++中管道自定义标准输入到系统调用
void dostuff(string s) {
system("echo " + s + " | myscript.sh");
...
}
当然,逃避s是相当困难的。有没有一种方法可以将s用作myscript.sh的stdin?也就是说,这样的事情:
void dostuff(string s) {
FILE *out = stringToFile(s);
system("myscript.sh", out);
}
我想,除非我真的不想做直链(或者,如果我特别懒,二次),只是那个时间分配。代码也会很烦人。 – joshlf
@ joshlf13嗯,我明白了(虽然你的问题意味着短的输入,由于你给的代码示例)。我已经添加了一个我想到的例子。这对我很好用 – sehe
更新:包括恢复stdin回原始值。这个概念证明工作得很好。我希望你喜欢它 – sehe