2010-11-19 9 views
2

Ich arbeite an der Implementierung eines Octave Interpreters in einer FastCGI Sitzung mit C/C++ in Ubuntu Linux. Das Problem, das ich in laufen lasse, ist, dass FCGI stdout-FCGI_stdout, aber die vorkompilierte Octave Header verwalten noch die normale stdout verwenden, die in Apache error.log endet Umleitungen statt im Browser ausgegeben.Definiere stdout in FastCGI und Octave

Hat jemand von euch weiß, wie Octave von der Nutzung des Systems stdout zu verwenden FCGI des stdout zu umleiten? Oder auch nur, um es umleiten stdout in eine Datei, ohne Octave Code ändern und neu kompilieren zu müssen.

Dank

+0

C oder C++? Welcher? –

+0

Kompilieren in C++, und der meiste Code ist in C++, aber alle print-Anweisungen müssen C-Stil (printf statt cout) durchgeführt werden, um zu arbeiten. – vityav

+0

Können Sie die von Octave verwendeten vorkompilierten Header ändern und neu kompilieren? Wenn ja, kannst du nicht einfach etwas tun, wie '#define stdout FCGI_stdout'? –

Antwort

2

Um meine eigene Frage, ob jemand anderes kommt diese Art und Weise zu beantworten: Insbesondere stdout in Oktaveinstellung nicht zu funktionieren scheint, und weder alle Versuche tun, um vorübergehend stdout auf Systemebene zu umleiten. Allerdings Oktave hat den Befehl dup2, verwendet, wie hier beschrieben:

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

Damit kann Oktave stdout in eine Datei umleiten, indem Sie ein anderes Programm (oder wahrscheinlich zu lesenden einmal schnell-cgi eigenen stdout-Stream Sie haben die PID)