boost启动进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace bp = boost::process;
do
{
bp::ipstream is;
bp::child middlewarex86(
homedir + "/mirror_size.sh"
, args
, (bp::std_out & bp::std_err) > is // std_out和std_err重定向到is
);
// 运行
if (!middlewarex86.running())
{
break;
}
// 读输出
if (std::getline(is, line) && !line.empty())
{
exec = true;
}
if (middlewarex86.joinable())
{
// 等待运行结束
middlewarex86.wait();
}
}while(0);