Aunque no sea portable, si utilizas Linux lo suyo es hacerte un proceso hijo, una pipe y redirigir la salida estandar del proceso hijo a la pipe (y leer de la pipe, una vez muera el hijo y mientras tanto, eso ya como quieras...).
EDIT: anda, acabo de descubrir popen, que es lo que te decía yo pero con un par de lineas, que chulo.