除了每種類型可容納的值的大小之外,的用法與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