В C-оболочке есть ли способ определить, является ли вывод команды из stdout или stderr?

#csh #tcsh

Вопрос:

Я пытаюсь выполнить команду сценария в фоновом режиме следующим образом: (xxxx amp;)

Мой клиент сказал мне, что проблема с командой сценария заключается в том, что при запуске процесса в фоновом режиме с помощью amp; стандартный вывод процесса, работающего в фоновом режиме, выводится как стандартная ошибка. Чтобы смягчить проблему, мне нужно заключить ее в скобки().

Итак, для того, чтобы проверить, я просто хотел знать, является ли вывод команды для stdout или stderr. Есть ли способ отличить stdout от stderr в c-оболочке?

Комментарии:

1. Конечно, вы можете различать, но предпосылка кажется сомнительной. Фоновый процесс по-прежнему выводит stdout на stdout.

2. Многие проблемы с оболочкой C элегантно решаются путем переключения на другую оболочку. Было время, когда была причина tcsh , по которой он был популярен, но это было 20 лет назад.