Как определить оптимальный размер блока дискового ввода-вывода на Win32? - PullRequest
2 голосов
/ 13 августа 2010

В системах Posix член st_blksize структуры stat содержит оптимальный размер блока для ввода-вывода для данного файла. Похоже, что реализации stat для Win32 (_stat & _stat64) не поддерживают это поле. Каков Win32-эквивалентный способ определения оптимального размера блока ввода-вывода для данного файла или файловой системы?

1 Ответ

2 голосов
/ 13 августа 2010

Я не уверен, что это всегда вернет оптимальный номер, но вызов Win32 GetDiskFreeSpace возвращает, среди прочего, lpBytesPerSector и lpSectorsPerCluster;умножьте их, чтобы получить количество байтов на кластер, которое (возможно) является разумным значением для использования в качестве размера буфера.

Этот вызов не применяется к файлам, а скорее к файловым системам, поэтому вам придется вычислитькакой корень файл живет до его использования.

...