Я написал приложение, которое использует fork и execv для запуска другого процесса. Я сделал трубку для уведомления о статусе, и из основной записи запущенного процесса я пишу несколько байтов, чтобы сообщить, что он запущен правильно. В противном случае, чтение возвращает 0, поскольку канал записи был закрыт в разветвленном процессе.Есть ли способ временно отключить fd 2 в UNIX?
Единственная проблема в том, что процесс не запускается (отсутствует библиотека), я получаю сообщение в stderr об этом. Сообщение написано для оболочки, что не так. Я бы предпочел сделать это тихо. Однако, если я закрываю (2) перед execv, у меня нет сообщения о том, чего я хочу. Тем не менее я хотел бы оставить fd 2 открытым для stderr.
Или 'dup (1, 2)', если родительский процесс хочет увидеть сообщение об ошибке. –