Cで$|=1;相当の処理をするには?

[上に] [前に] [次に]
PTAN [E-Mail] 1999/11/13(土) 14:40:17
Perlでstdoutにキャッシュさせないようにする時、
$|=1;
と書きますが、Cではこれに相当するコマンド(関数?)は
あるのでしょうか?
全てのprintfの後にfflush(stdout)してもよいのですが...

きたむら 1999/11/13(土) 23:07:34
昔からあるのは、setbuf(stdout, NULL); でしょうか。

#って古いっすか?今はsetvbufとか使うの?

B-Cus 1999/11/14(日) 05:44:16
# UNIX なのか Windows なのか、環境を書きましょうよ。

> 今はsetvbufとか使うの?
setbuf が obsolete というわけでもないと思います。
多くの環境では、setbuf は setvbuf を呼び出すだけの関数に
なってるんじゃないでしょうか。

行単位のバッファリングでいいなら、
 char buf[1024];
 setvbuf(stdout,buf,_IOLBF,sizeof(buf))
の方が、処理効率あがるかも。

PTAN 1999/11/14(日) 12:39:09
[[解決]]
なるほど、ありがとうございましたm(__)m
MSDNを見たら、setbufは互換性のために残してるだけなので、setvbuf
を使いましょうとありました。

きたむら 1999/11/15(月) 01:34:32
あ、やはり古かったですね>setbuf
obsoleteでなくても、なんとなく無駄な処理を増やしてる
ようなのがいやなので、これからはsetvbufにします…。

[上に] [前に] [次に]