除了每种类型可容纳的值的大小之外,的用法与size_t
和off_t
之间的主要区别是什么?这是否只是size_t
类型用于绝对尺寸并且off_t
类型用于补偿的惯例?还是比这更深入?size_t和off_t之间的用法差异是什么?
我正在写一个包装类来启用使用mmap
编写大型文件,我想知道最佳类型将用于他们的参数。鉴于我想写入大于4GB的文件,我很想使用size_t来处理所有事情,但这是否是最佳做法? (?或者我应该使用一些off64_t
类型某些功能)
例如,要我writeAt
函数声明为:
MMapWriter::writeAt(off64_t offset, const void* src, size_t size)
或
MMapWriter::writeAt(size_t offset, const void* src, size_t size)
谢谢史蒂夫,这是一个很大的帮助。我想我还没有完成“mmap”桥接这两个概念的链接。 –
很好的答案,但为什么在地狱做fread()和fwrite()采取'size_t'呢? –
注意,还有ssize_t作为size_t的已签名对象。 – fuz