使用posix和c++,我正在尝试以下操作:
std::string command = "echo 1 > myFile";
system(command);
运行时输出总是"1>myFile"输出到终端,而不是将1写入文件。如果这是可能的,或者如何解决的想法?底层系统是linux和bash
std::system
的文档说它"调用主机环境的命令处理器"。如果没有发生这种情况,请考虑使用类似于
system("/bin/sh -c 'echo 1 > myFile'")
因为你使用的是linux,所以你可以使用popen
#include<cstdlib>
#include<memory>
const char *cmd = "echo 1 > myFile";
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose);