c++ - 在 C++ 中使用 system() 调用回显到文件——总是使用字符串文字而不是 > 运算符?
问题描述
使用 posix 和 c++ 我正在尝试以下操作:
std::string command = "echo 1 > myFile";
system(command);
运行时的输出始终是“1 > myFile”输出到终端,而不是 1 被写入文件。关于这是否可能的想法,或者如何解决?底层系统是linux和bash。
解决方案
既然你在linux上,你可以使用popen
#include<cstdlib>
#include<memory>
const char *cmd = "echo 1 > myFile";
std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose);
推荐阅读
- reactjs - Apollo Client - fetchMore 组件更新问题
- postgresql - Docker + Kong:[PostgreSQL 错误] 无法检索 PostgreSQL server_version_num:连接被拒绝
- java - 当方法不返回选项时如何处理空值?
- python - 强制 conda 更新包而不降级其他包,忽略任何可能的不良副作用
- php - 无法通过我的流明后端访问 Javascript Web 令牌
- python - 在 Pandas 表中总结循环结果
- amazon-web-services - 具有 Lambda 集成的 Terraform API 网关
- node.js - 我在哪里可以找到与 Electron 版本匹配的 VSCode 版本的表格?
- angular - IONIC-MQTT 插件在 MessageArrived 后不调用任何方法 | Angular 8 + 离子
- vb.net - 我如何只在 vb.net 中输出 yyyy?我最终希望能够减去