文档boost https://www.boost.org/doc/libs/1_64_0/doc/html/process.html没有提供任何使用自定义环境创建子进程的示例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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)