On Posix systems, the st_blksize member of the stat structure contains the optimal block size for IO for a given file. It looks like the Win32 implementations of stat (_stat & _stat64) do not support this field. What is the Win32 equivalent way of determining the optimal IO block size for a given file or filesystem?
+1
A:
I'm not sure if this will always return the optimal number, but the Win32 call GetDiskFreeSpace
returns, among other things, lpBytesPerSector
and lpSectorsPerCluster
; multiply those to get the bytes per cluster which is (perhaps) a reasonable value to use as a buffer size.
This call doesn't apply to files, but rather file systems, so you'd have to figure out what root the file lives on before using it.
Jack Lloyd
2010-08-13 16:04:54