Переопределить стандартный вывод в FastCGI и Octave - PullRequest
2 голосов
/ 20 ноября 2010

Я работаю над реализацией интерпретатора Octave внутри сеанса FastCGI с использованием C / C ++ в Ubuntu Linux.Проблема, с которой я сталкиваюсь, заключается в том, что FCGI перенаправляет stdout на FCGI_stdout , но скомпилированные заголовки Octave все еще могут использовать обычный stdout , который заканчивается в Apacheerror.log вместо распечатки в браузере.

Кто-нибудь из вас знает, как перенаправить Octave от использования системного stdout для использования FCGI stdout ?Или даже просто перенаправить stdout в файл без изменения кода Octave и перекомпиляции.

Спасибо

1 Ответ

2 голосов
/ 28 января 2011

Чтобы ответить на мой собственный вопрос, если кто-то еще пойдет по этому пути: в частности, настройка stdout в октаве, похоже, не работает, и при этом не предпринимаются попытки временно перенаправить stdout на системном уровне. Однако в octave есть команда dup2, используемая как описано здесь:

http://octave.1599824.n4.nabble.com/dup2-on-stdout-or-using-disp-on-another-file-stream-td1611884.html

Это можно использовать для перенаправления стандартного вывода октавы в файл для чтения другой программой (или, вероятно, в собственный поток стандартного вывода fast-cgi, когда у вас есть PID)

...