標準エラー出力が表示されないことがあるNo.04959
Bull さん 10/01/12 09:41
 
お世話になります。

プログラム実行で標準出力と標準エラー出力を
アウトプット枠に指定しますと、標準エラー出力が
表示されません。出力先を新規などにしても同様です。

実行するプログラムで標準出力がなければ
標準エラー出力は表示されるようです。
また、標準エラー出力を大量に出力すれば
両方とも表示されるようです。


環境:
Windows XP pro SP2
秀丸エディタ V8.00 b35

[ ]
RE:04959 標準エラー出力が表示されないこNo.04975
秀丸担当 さん 10/01/12 17:05
 

>プログラム実行で標準出力と標準エラー出力を
>アウトプット枠に指定しますと、標準エラー出力が
>表示されません。出力先を新規などにしても同様です。

エラー出力を出すサンプルプログラムで確認してみましたが、標準出力と同様に
出ました。
1つ気になることとして、改行が入るまではバッファに溜め込んだままで出ない
ことがあります。
改行が無いまま終了すると、溜まっていたぶんが出力されました。

と思っていろいろ試してみたところ、標準出力と標準エラー出力が両方とも改行
が無い状態で溜め込んだまま終了すると、標準出力だけが出て、標準エラー出力
が出ないことがわかりました。
これはバグでした。
そういうことだとしたら修正してみて直るかもしれません。

そういうことでないとしたら、改行の状態など、具体的な状態がもしわかれば教
えていただけると何か分かるかもしれません。

[ ]
RE:04975 標準エラー出力が表示されないこNo.04977
Bull さん 10/01/12 18:25
 
秀丸担当さん お忙しい中、早速調査して頂きましてありがとうございます。

>そういうことでないとしたら、改行の状態など、具体的な状態がもしわかれば教
>えていただけると何か分かるかもしれません。

こちらでも、再現できるようなプログラムを作ってみました。

 1:// test.cpp
 2:#include <stdio.h>
 3:int main(void)
 4:{
 5:    printf("hello, world\nこんにちは\n");
 6:    //printf("hello, world こんにちは\n");
 7:
 8:    //for (int i = 0; i < 1000; ++i)
 9:        fprintf(stderr, "What happened\n");
10
11:    return 0;
12:}


このようなプログラムで現象を再現できました。

5行目をコメントにして、6行目を生かすと
標準エラー出力も表示されました。
改行が複数あると現象が変わるようです。

また最初にも書きましたように、8行目を
生かして大量の標準エラー出力が出るよう
にすると、標準出力のあるなしに関わらず
標準エラー出力も表示されるようです。

[ ]
RE:04977 標準エラー出力が表示されないこNo.04985
秀丸担当 さん 10/01/13 09:35
 

>こちらでも、再現できるようなプログラムを作ってみました。

ありがとうございます。
このプログラムで問題を確認することができました。
修正してみて、直っていることも確認できました。
次のβ版で修正させていただきます。

[ ]
RE:04985 標準エラー出力が表示されないこNo.05001
Bull さん 10/01/15 12:24
 
>次のβ版で修正させていただきます。

β36 で修正されていることを確認いたしました。
どうもありがとうございました。

[ ]