在POSIX系统中,stat结构的st_blksize成员包含给定文件的IO最佳块大小。看起来stat(_stat&_stat64)的win32实现不支持此字段。确定给定文件或文件系统的最佳IO块大小的Win32等效方法是什么?
我不确定这是否总是返回最佳数字,但Win32调用 GetDiskFreeSpace 回报,尤其是, lpBytesPerSector 和 lpSectorsPerCluster ;将这些值相乘,得到每个集群的字节数,这可能是用作缓冲区大小的合理值。
GetDiskFreeSpace
lpBytesPerSector
lpSectorsPerCluster
这个调用不适用于文件,而适用于文件系统,因此在使用文件之前,您必须先了解文件的根目录。