[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
2022-03-16 01:35:54
質問
なぜ
printf
は、フォーマット文字列に改行がない限り、呼び出し後にフラッシュしないのですか? これはPOSIXの動作でしょうか?どのようにしたら
printf
は毎回すぐにフラッシュしますか?
どのように解決するのですか?
その
stdout
ストリームはデフォルトでラインバッファリングされており、改行に達した後 (あるいは指示されたとき) にバッファにあるものを表示します。すぐに表示させるには、いくつかのオプションがあります。
-
印刷先
stderr
を使用するのではなくfprintf
(stderr
は デフォルトでバッファなし ):fprintf(stderr, "I will be printed immediately");
-
フラッシュ
stdout
を使用して、必要なときにいつでもfflush
:printf("Buffered, will be flushed"); fflush(stdout); // Will now print everything in the stdout buffer
-
標準出力でのバッファリングを無効にするために
setbuf
:setbuf(stdout, NULL);
-
または、より柔軟な
setvbuf
:setvbuf(stdout, NULL, _IONBF, 0);
関連
-
VSCodeでCプログラムを書くとエラーになる:ソースファイル "stdio.h" を開くことができない
-
initializer element is not constant "というエラーが表示されるのですが?
-
C/C++の再定義
-
C - 添え字の値が配列でもポインタでもベクトルでもないエラー
-
[解決済み] mallocで文字列を確保する
-
[解決済み] Linux Socket write() によるBad File Descriptor C
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み】boolのprintfフォーマット指定子とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
赤線の位置は必ずしも間違っていない:式は変更可能なlvalueでなければならないエラーは、この文とは別の場所に存在する可能性があります。
-
C/C++の再定義
-
警告: 'struct XXX' はパラメータリストの内部で宣言されています。
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] C言語の**はどういう意味ですか?
-
[解決済み] ソケットアクセプト - "開かれているファイルが多すぎる"
-
[解決済み] ++iとi++の違いは何ですか?
-
[解決済み] C言語でランダムなint型を生成するには?
-
[解決済み] C言語で "unsigned long "をprintfする方法は?