Я использую fork и execv для порождения дочерних программ. Как я могу заставить эти программы работать в фоновом режиме? Я пытался не ждать их, но они по-прежнему отправляют вывод на экран.
Перенаправить stdout / stderr на /dev/null перед выполнением:
/dev/null
freopen("/dev/null", "w", stdout); freopen("/dev/null", "w", stderr); exec....
Вы можете использовать канал, чтобы перенаправить вывод дочернего процесса.Взгляните на этот квестон.Есть код, который делает перенаправление stdout и stderr на pipe.