Aparte del tamaño de los valores que puede contener cada tipo, ¿cuáles son las principales diferencias en uso entre size_t
y off_t
? ¿Es solo una convención que los tipos size_t
se usan para tamaños absolutos y los tipos off_t
se usan para los desplazamientos? ¿O es más profundo que eso?¿Cuáles son las diferencias de uso entre size_t y off_t?
Estoy escribiendo una clase contenedora para permitir la escritura de archivos de gran tamaño usando mmap
y quiero saber cuáles son los mejores tipos para usar para sus argumentos. Dado que quiero escribir en archivos de> 4GB, estoy tentado de usar size_t para todo, pero ¿es esa la mejor práctica? (? O debo utilizar algunos off64_t
tipos para ciertas funciones)
Por ejemplo, si mi función writeAt
declararse como sigue:
MMapWriter::writeAt(off64_t offset, const void* src, size_t size)
o
MMapWriter::writeAt(size_t offset, const void* src, size_t size)
Gracias Steve, esto es de gran ayuda. Creo que aún no había hecho el enlace que 'mmap' estaba uniendo los dos conceptos. –
Gran respuesta, pero ¿por qué diablos fread() y fwrite() toman 'size_t' entonces? –
Observe que también hay ssize_t como contraparte firmada de size_t. – fuz