CLIなPHPでSTDERRはob_startで制御できない?
CLI版のPHPで
fwrite(STDERR, $error_message);
のようなコードを書いていて、出力制御したくなったもののob_start()では標準出力しか制御できないらしい。。うーん。
標準出力、といっても
fwrite(STDOUT, $error_message);
と
echo $error_message;
は別物らしく、前者はSTDERRと同様に制御できなかったのでfwriteがダメなのかな?
PHP5.1.6
CLIは、Common Language Infrastructureかと思いましたが、Command Line Interfaceの方みたいですね。
PHPの場合は違うのかもしれませんが、C言語ではfwriteよりfprintfを利用するイメージの方が自分には強いです。いかがでしょうか?
よくわからないですが…どうなのでしょう。
PHPにfprintfはない、と思いきやPHP5から追加されたんですね。
http://jp2.php.net/manual/en/function.fprintf.php
ob_startの動作はfwriteと同じでした。
Cで標準出力にfwriteしたことはないです。printfかfprintfですね。
#include <stdio.h> int main(void) { fwrite("hoge\\n", sizeof(char), 5, stdout); return 0; }fwriteでも動くみたいですけど 笑
gcc 4.1.1
fwriteも出力OKなのですね。知らなかった。