フレッドの行動について質問です。fread は stdio.h からのものです
fread(2KB) の場合、strace ログに read()=4KB が表示されるという実験を行いました。したがって、これは、fread が「プリフェッチ」を使用したこと、または少なくとも 4KB に切り上げたことを意味します。ただし、fread がプリフェッチを使用してデータをライブラリ レベルでキャッシュした場合、プログラムが「プリフェッチされた」データを使用する前に、他のプログラムによって変更される可能性があり、fread はこの変更を認識しない可能性があり、これにより不整合の問題が発生します。 .
では、fread は正確には何をするのでしょうか。freadには切り上げ、プリフェッチがあり、freadはライブラリレベルでキャッシュしますか? プリフェッチを使用している場合、不整合の問題をどのように処理しますか?
ありがとう。