如何初始化boost::process::child(boost-process0.5)
How to initialize boost::process::child(boost process 0.5)?
我想存储boost::process的子进程,但不知道如何初始化它
操作系统:win7 64位编译器:msvc2008 32位提升:1_55_0
简化后的示例
#include <boost/process/initializers.hpp>
#include <boost/process.hpp>
#include <boost/system/system_error.hpp>
#include <iostream>
void test_boost_system()
{
namespace bp = boost::process;
namespace bpi = boost::process::initializers;
//bp::child child; //#1
boost::system::error_code ec;
bp::child child_2 = bp::execute(bpi::run_exe("ldapInterface.exe"), bpi::set_on_error(ec));
if(ec.value() != 0){
std::cout<<ec.message()<<std::endl;
}else{
std::cout<<"success"<<std::endl;
}
}
如果我不想使用execute将子项初始化到位,我该如何初始化它?
伪代码:
namespace bp = boost::process;
namespace bpi = boost::process::initializers;
class process_manager
{
public:
~process_manager() { bp::terminate(child_); }
void open_process(std::string const &process)
{
child_ = bp::execute(bpi::run_exe(process)); //compile error
}
private:
bp::child child_;
};
错误消息:错误C2512:"boost::process::windows::child":没有合适的默认构造函数可用
使用一个允许延迟初始化的包装器。
例如
class process_manager
{
public:
~process_manager() { if (child_) bp::terminate(*child_); }
void open_process(std::string const &process)
{
child_ = bp::execute(bpi::run_exe(process)); //compile error
}
private:
boost::optional<bp::child> child_;
};
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- boost::进程间消息队列引发错误
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- cmake如何在fedora工作站中找到boost静态库包
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Boost Graph Library,修复节点大小
- 什么是"#include <boost/functional/hash.hpp> "?
- 基于boost的程序的静态链接——zlib问题
- C++:如何在CLion IDE中安装Boost
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何在boost beast http请求中设置http头
- Boost Spirit,获取迭代器内部语义动作
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 传递 boost::filesystem::p ath 到 boost::p rocess::child 会导致 Win
- 如何确保我们从 boost::child 进程中读取所有行
- 如何使用 boost::p rocess::child 处理路径中的空格
- Boost.Process wait_for_exit(child): crash?
- 如何初始化boost::process::child(boost-process0.5)
- Boost PropertyTree:检查child是否存在