首页 > 解决方案 > 在 C++ 中使用 system() 调用回显到文件——总是使用字符串文字而不是 > 运算符?

问题描述

使用 posix 和 c++ 我正在尝试以下操作:

std::string command = "echo 1 > myFile";
system(command);

运行时的输出始终是“1 > myFile”输出到终端,而不是 1 被写入文件。关于这是否可能的想法,或者如何解决?底层系统是linux和bash。

标签: c++linuxposix

解决方案


既然你在linux上,你可以使用popen

#include<cstdlib>
#include<memory>

const char *cmd = "echo 1 > myFile";
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose);

推荐阅读