
Julio M. Merino Vidal wrote:
Hi everyone,
Among the classes I wrote, there are some that provide an abstraction layer to launch other (child) processes. Once the process is launched, the code can access its standard input/output/error streams by using the standard iostreams framework.
But, before I start to do so, I would like to know if such library will be adequate to be integrated and/or if there is interest in it. FWIW, I've searched the mailing lists and found some people that said that they missed this functionality in Boost.
Hi, One feature I intend to implement soon for the iostreams library is a set of filters and devices for starting child porcesses and accessing their standard input and output. I got the idea from the "unix filters" presented by JC van Winkle and john van Krieken at the 2003 ACCU conference. (The paper is called "GNIRTS ESAC REWOL: Bringing UNIX filters to iostream.") I have been planning to implement it along the lines of the libexecstream library mentioned by Jeff Garland. The components I am planning to support are as follows: * system_filter - starts a child process and filters a character sequence by feeding it to the child process's standard input and reading the filtered sequence from the porcess's standard output. * system_source - starts a child process and reads data from its standard output * system_sink - starts a child process and writes data to its standard input Clearly, if a library like the one you propose make it into boost, I will use it to implement the above components. First I'd like to consider whether there are any features of such a library which cannot be adequeately exposed by the above three components. If not, we could simply work together to write the above components using your code as a starting point, and the library might even make it into the upcoming 1.33 release. Jonathan