Можно создать два пайпа ,в них направить ввод и вывод перед fork'ом,
потом fork и читай из пайпа или пиши. Только не перепутай где пишущий конец,
а где читающий.
Кстати: а как переправить стандартный вывод из программы
int fd=open();
STDOUT=fd; // STDOUT это макрос или переменная ?????
А может еденственный выход:
int f_std[2], f_err[2];
//
pipe(f_std);
pipe(f_err);
//
#define std_printf( sprintf(f_std[0],
#define err_printf( sprintf(f_err[0],
// Hack! ;-)
// Далее вместо
// printf(_("I love my girl!
"));
std_printf(_("I love my girl!
"));
Уважаемые господа, есть такая книга, называется "Системное програмирование
на С++ для UNIX" издательтва BVH-Киев. Вот её стоит купить, в ней можно
найти ответы на многие вопросы из области пайпов, потоков и т.д... Очень
советую почитать, помогает на первом этапе, ну а потом man'ы.
1. Зачем тратить деньги на книжку, когда IPC есть в LPG - Linux
Programmer's Guide?
2. А при чем тут C++ ?
3. Первоначальный вопрос очень плохо сформулирован. А ведь devel -
это действительно не general...
Извините за неопределенность(под рукой нет ни доки ни примера), но делается это так:
создается пайп: потом делается: естественно, fork с if'ом. Потом в дочерней части stdin и stdout указываешь на пайп (по-моему это делается dup2 ). И можно делать exec. А вообще-то книжку правильно рекомендуют. Там это подробненько описано.