2010-11-19 8 views
2

Ubuntu LinuxでC/C++を使ってFastCGIセッションの中でOctaveインタプリタを実装しようとしています。私はに実行している問題はFCGIがFCGI_stdout標準出力をリダイレクトするということですが、プリコンパイルされたオクターブヘッダはまだApacheのerror.logファイルで終わるの代わりに、ブラウザに印刷された通常の標準出力を使用することを管理します。FastCGIとOctaveでstdoutを再定義する

あなたのいずれかがFCGIの標準出力を使用するようにシステムの標準出力を使用してからオクターブをリダイレクトする方法を知っていますか?それとも、Octaveのコードを変更して再コンパイルする必要なく、stdoutをファイルにリダイレクトするだけです。

おかげ

+0

CまたはC++?どれ? –

+0

C++でコンパイルすると、ほとんどのコードはC++で書かれていますが、すべてのprint文は動作するためにCスタイル(printoutの代わりにprintf)で実行されなければならないようです。 – vityav

+0

Octaveが使用するプリコンパイル済みヘッダーを変更して再コンパイルできますか?もしそうなら、単に '#define stdout FCGI_stdout'のようなことをすることはできませんか? –

答えて

2

誰がこのようになれば自分の質問に答えるために:具体的にオクターブで標準出力を設定すると動作するようには思えない、どちらも一時的にシステムレベルで標準出力をリダイレクトする試みを行いません。しかし、オクターブは、ここで説明するように使用するコマンドdup2のを、持っている:

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

これは、一度高速CGIの独自の標準出力ストリームに別のプログラム(またはそうで読み取られるように、ファイルへのオクターブのstdoutをリダイレクトするために使用することができますあなたはPIDを持っています)

関連する問題