Sur les systèmes Posix, le membre st_blksize de la structure statistique contient la taille de bloc optimale pour les E/S pour un fichier donné. Il semble que les implémentations Win32 de stat (_stat & _stat64) ne supportent pas ce champ. Quelle est la manière équivalente de Win32 de déterminer la taille de bloc d'E/S optimale pour un fichier ou un système de fichiers donné?Comment déterminez-vous la taille de bloc d'E/S de disque optimale sur Win32?
2
A
Répondre
2
Je ne suis pas sûr si cela retournera toujours le nombre optimal, mais l'appel Win32 GetDiskFreeSpace
renvoie, entre autres choses, lpBytesPerSector
et lpSectorsPerCluster
; Multipliez-les pour obtenir les octets par cluster, ce qui est (peut-être) une valeur raisonnable à utiliser comme taille de tampon.
Cet appel ne s'applique pas aux fichiers, mais plutôt aux systèmes de fichiers, vous devez donc déterminer à quelle racine le fichier se trouve avant de l'utiliser.