除了每种类型可以容纳的值的大小之外,和之间使用的主要区别是什么?是否只是一种惯例,类型用于绝对大小和类型用于抵消?或者它比那更深?size_toff_tsize_toff_t
我正在编写一个包装类来启用大文件的编写,mmap我想知道最好的类型用于他们的参数.鉴于我想要写入> 4GB的文件,我很想将size_t用于所有内容,但这是最佳做法吗?(或者我应该off64_t为某些功能使用某些类型?)
例如,我的writeAt函数应该声明为:
MMapWriter::writeAt(off64_t offset, const void* src, size_t size)
Run Code Online (Sandbox Code Playgroud)
要么
MMapWriter::writeAt(size_t offset, const void* src, size_t size)
Run Code Online (Sandbox Code Playgroud)
Ste*_*sop 51
size_t用于对象,off_t用于文件.
mmap根据定义,合并这两个概念.我个人认为我会使用size_t,因为无论它是什么,映射文件也是(虚拟)内存中的数组.
size_t是标准的C++,off_t是Posix的,并且off64_t是GNU扩展与功能去fopen64,ftello64等我想它应该永远是同一类型off_t的64位GNU系统,但不赌贵公司,如果没有检查.
它是否相关,off_t是签名而未size_t签名.但签名对应的size_t是ptrdiff_t,所以当你需要签名类型时,它并不自动意味着你应该使用off_t或off64_t.
Jam*_*nze 12
size_t是C++(和C)标准的一部分,它指的是sizeof表达式的类型. off_t由Posix标准定义,并指文件的大小.
| 归档时间: |
|
| 查看次数: |
29396 次 |
| 最近记录: |