- C言語なら俺に聞け 151
580 :デフォルトの名無しさん (ワッチョイ 9602-XAPB)[]:2019/05/21(火) 02:21:13.21 ID:Y+BS98b80 - >>574
FILE * 経由で出力する printf() 等は内部でバッファリングしていてバッファがいっぱいになったらまとめて出力する(出力先が端末の場合は行単位で出力する)。 そのバッファを自分で指定した領域を使わせるか、またはなしにできるのが setbuf()。更に自由に大きさやモードも指定したいなら setvbuf() を使う。 バッファリングに関して考慮しなくても良い入出力をする場合は read(), write() で行う。この場合は全くバッファリングされないので少ないバイト数の入出力が多いと遅くなる。 それと printf() のようなフォーマットを考慮した出力はないので必要なら自作する。
|
- C言語なら俺に聞け 151
581 :デフォルトの名無しさん (ワッチョイ 9602-XAPB)[]:2019/05/21(火) 02:26:07.71 ID:Y+BS98b80 - >>576
open()してwrite()で1バイトづつ書くのとまとめて書くのとではバイト数によっては大幅に違いが出ると思う。環境依存ではあるが。
|
- C言語なら俺に聞け 151
583 :デフォルトの名無しさん (ワッチョイ 9602-XAPB)[]:2019/05/21(火) 03:58:34.93 ID:Y+BS98b80 - >>582
setvbuf()で自分でバッファの大きさ決めてしまった方が良いかも。
|
- C言語なら俺に聞け 151
608 :デフォルトの名無しさん (ワッチョイ 9602-XAPB)[]:2019/05/21(火) 22:06:40.11 ID:Y+BS98b80 - >>607
おお。既にあった。 さっきスマホで見てて気付かなかった。
|