在 c++ 中使用 system() 调用来回显到文件 -- 总是使用字符串文字而不是运算符>?



使用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);

最新更新