read() と fread() の違いは何ですか?

read() 低レベルのバッファなし読み取りです。 UNIX では直接システム コールを行います。

fread() C ライブラリの一部であり、バッファリングされた読み取りを提供します。通常は read() を呼び出すことで実装されます そのバッファを満たすために。


家族 read() -> openclosereadwrite
家族 fread() -> fopenfclosefreadfwrite

ファミリー向け:

  • システムコールです
  • フォーマットされていない IO:フォーマットされていないバイト ストリームがあります

家族の恐怖

  • 標準 C ライブラリ (libc) の関数です
  • 内部バッファを使用
  • 一部の IO は (「%..」パラメータで) フォーマットされています
  • 常に Linux バッファ キャッシュを使用する

詳細はこちら。ただし、この投稿には誤った情報が含まれていることに注意してください。


read fread はシステムコールですが、 は C 標準ライブラリの関数です。