POSIX Process Control in C++http://pstreams.sourceforge.net/
PStreams allows you to run another program from your C++ application and to
transfer data between the two programs, similar to shell pipelines. The PStreams
class works like a wrapper for the the POSIX.2 functions popen(3) and pclose(3)
(although it doesn't actually use them), using a C++ iostreams interface,
instead of C's stdio library. Thus, PStreams makes it possible to run an
external program and handle its stdin, stdout, and stderr just like you would
handle any other C++ iostream.