【发布时间】:2012-05-17 11:12:04
【问题描述】:
除了每种类型可以容纳的值的大小之外,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)
【问题讨论】: