c++ - 使用 boost 创建具有自定义环境的子进程
问题描述
文档提升没有提供任何使用process::child(...)
.
给出了一个示例,process::system(...)
但该函数system
的操作可能较少(例如管道或 waitpid),因此如果可能,我希望有一个完整的示例process::child
。
解决方案
最后的答案和评论已经很老了,但我可以确认boost::process::child
在 Ubuntu 18.04 下使用 Boost 版本 1.65 可以使用环境参数。关于那个的文档很薄,所以我不得不自己找出:
std::string command = "/usr/bin/something";
ipstream pipe_stream;
// Get current env
auto env = boost::this_process::environment();
// Add something
env["CHINESE_FOOD"] = "GOOD";
// Change something
env["CHINESE_FOOD"] = "GREAT";
// Delete something
env["CHINESE_FOOD"].clear();
boost::process::child childProc(command, env, std_out > pipe_stream);
当然,如果不需要环境,它会自动从父进程继承
std::string command = "/usr/bin/something";
ipstream pipe_stream;
boost::process::child childProc(command, std_out > pipe_stream);
推荐阅读
- sql - 当源数据库中不存在表时是否可以传递空值
- npm - Sonatype - Nexus Repo NPM 包 URL 不正确
- c# - 使用 Entity Framework Core 获取多个表
- regex - 在本机反应中使用正则表达式验证电话提交
- semantic-ui - 语义 ui - 强制更新进度条
- python - 如何使用 Python 在一组点上绘制多边形(部分向内弯曲)边缘?
- c - 堆损坏问题 - C
- c# - 错误 SignalR 连接到网络负载平衡 (NLB) net::ERR_SSL_VERSION_INTERFERENCE?
- powershell - 让证书在一个月或更短的时间内到期
- http-status-code-404 - 开发和生产中如何在 NextJS 中渲染 404 页面?