大佬教程收集整理的这篇文章主要介绍了c – Boost.Process – 如何使进程运行一个函数?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最简单的程序看起来像
#include <boost/process.hpp> #include <String> #include <vector> namespace bp = ::boost::process; void Hello() { //... contents does not matter for me Now - I just want to make a new process running this function using Boost.Process. } bp::child start_child() { std::string exec = "bjam"; std::vector<std::string> args; args.push_BACk("--version"); bp::context ctx; ctx.stdouT_Behavior = bp::silence_stream(); return bp::launch(exec,args,ctX); } int main() { bp::child c = start_child(); bp::status s = c.wait(); return s.exited() ? s.exit_status() : EXIT_FAILURE; }
如果孩子是你的程序的另一个实例,你需要定义自己的方式告诉孩子运行Hello().这可能是过程参数或std:cin上的某些协议(即使用标准输入进行进程间通信)
在UNIX / Linux平台上,您可以启动另一个进程,而不是运行不同的可执行文件.请参阅fork(2)系统调用.然后你可以在孩子中调用Hello().但是boost :: process:launch(9在这样的平台上映射到fork exec.普通的fork()不会被boost暴露,例如因为它在其他平台上不存在.
可能有非常依赖于平台的方式来做你想要的,但你不想去那里.
以上是大佬教程为你收集整理的c – Boost.Process – 如何使进程运行一个函数?全部内容,希望文章能够帮你解决c – Boost.Process – 如何使进程运行一个函数?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。