Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Posixシステムでは、stat構造体のst_blksizeメンバーに、特定のファイルのIOに最適なブロックサイズが含まれています。Win32のstat(_stat&_stat64)の実装はこのフィールドをサポートしていないようです。特定のファイルまたはファイルシステムに最適なIOブロックサイズを決定するWin32と同等の方法は何ですか?
これが常に最適な番号を返すかどうかはわかりませんが、Win32呼び出しGetDiskFreeSpaceは、とりわけ、lpBytesPerSectorそしてlpSectorsPerCluster;を返します。それらを乗算して、クラスターあたりのバイト数を取得します。これは、(おそらく)バッファーサイズとして使用するのに妥当な値です。
GetDiskFreeSpace
lpBytesPerSector
lpSectorsPerCluster
この呼び出しはファイルではなくファイルシステムに適用されるため、ファイルを使用する前に、ファイルが存在するルートを把握する必要があります。