Boost logo

Boost Users :

Subject: [Boost-users] boost process : how to use it
From: Vincent R. (forumer_at_[hidden])
Date: 2014-01-07 11:44:10


Hi,

What is the status of boost:process, when looking on internet you can
find different version that are more or less compatible.
Not an ideal situation and I am a bit surprised that this lib doesn't
get more love from c++ dev.
Anyway after a long time coding in easier language I decided to do a
small project under linux that consists in a tcp server running
on linux that start some process initiated by a client and sends the
output.
So I have downaloaded the most "official" version I could find here
http://www.highscore.de/boost/process/ and I tried the following code :

#include <cassert>
#include <iostream>
#include <map>
#include <string>
#include <sstream>
#include <vector>
#include <boost/asio.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/process.hpp>

namespace asio = boost::asio;
namespace bp = boost::process;
using asio::ip::tcp;

bp::child start_child()
{
     std::string exec = boost::process::find_executable_in_path("dpkg");
     std::vector<std::string> args;
     args.push_back("-l");

     bp::context ctx;
     ctx.stderr_behavior = bp::capture_stream();

     return bp::launch(exec, args, ctx);
}

int main(int argc, char *argv[])
{
     std::string value;

     bp::child c = start_child();
     bp::pistream &is = c.get_stderr();
     std::string line;
     while (std::getline(is, line))
     {
         value += line + "\r\n";
     }
     c.wait();

     std::cout << "OUTPUT: " << value << std::endl;

    return 0;
}

My first question is how can I merge the stderr with stdout because
some commands use stdout and some others stderr ?

My second question is : why the code above doesn't work properly and
doesn't handle the arguments I am passing ?
Indeed when I run the code I get the following output :

OUTPUT: dpkg: error: need an action option

it means that the -l is not taken in consideration.

Thanks for any help


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net