Как перенаправить php exec stderr в выходной массив, когда оболочка csh?

Возможный дубликат:
Как для перенаправления stdout и stderr из скрипта csh

Я делал это много раз раньше, когда оболочка выполнения сервера была sh или bash:

exec('dostuff 2>&1', $output, $return);

Но теперь мой сервер находится на FreeBSD, а исполняющая оболочка Apache — csh. Я делал это:

exec('dostuff |& cat', $output, $return);

Я не уверен, что это правильно или оптимально. У кого-нибудь есть лучший способ?


person user9645    schedule 26.10.2012    source источник
comment
Добро пожаловать в Stackoverflow. Пожалуйста, следуйте спросить совет, который вам необходимо подтвердить, прежде чем публиковать любой вопрос. Имейте в виду, что только вы не уверены в чем-то, и вы спрашиваете себя, как это запрограммировано или есть неуказанный лучший способ, не квалифицируемый как вопрос программирования как таковой. Я добавил связанный вопрос как возможный дубликат, однако, на мой взгляд, ваш вопрос можно было бы сразу закрыть как неконструктивный.   -  person hakre    schedule 27.10.2012


Ответы (1)


Используйте proc_open(), чтобы получить вывод из stderr.

person piotrekkr    schedule 26.10.2012
comment
Кажется слишком сложным для моих простых случаев. Нет ли способа перенаправить stderr на stdout в csh? - person user9645; 27.10.2012
comment
@ user9645: Если бы вы исследовали свою проблему, вы бы узнали об этом несколько часов назад. Смотрите связанный дубликат в комментариях под вашим вопросом. - person hakre; 27.10.2012
comment
Это больше похоже на комментарий, чем на ответ. - person hakre; 27.10.2012