パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Hello, Worldに潜むバグ」記事へのコメント

  • by Anonymous Coward

    ・C言語の高水準入出力 printf(3) とか fputs(3) で出力した内容はキャッシュされるので fclose(3) とか fflush(3) とかで吐き出して戻り値を確認しないと正常に出力されたことは保証されない。
    ・exit(3) なり main() からの return で暗黙にフラッシュした場合はエラーチェックできないので、失敗してもわからない。

    というのは基本仕様なので知っとく必要がある。
    /dev/full とかだけでなく、write(2)で発生するあらゆるエラーの可能性がある。

    • by Anonymous Coward on 2022年03月24日 17時26分 (#4220865)

      それはCの話なのかUnixの話なのかオーエス全般の話なのか…
      ショリケイイゾンテクソダナ

      親コメント
      • by Anonymous Coward on 2022年03月24日 17時37分 (#4220874)

        バッファキャッシュの問題はC言語の実装の話。正確には libc にある C言語の標準関数の実装の話。

        親コメント
      • by Anonymous Coward

        Cの規格では(1)バッファされる(2)バッファされない(3)ラインバッファ(テキストのみ)の3種類が挙げられていて、そのどれかは処理系に依存する。
        エラー処理的には(1)を想定したほうがいいので、元コメントは完全に正しい。

        stderrはバッファされないと書いてあったかな。

物事のやり方は一つではない -- Perlな人

処理中...