Loading...
Linux C操作超过2GB大小的文件
big_anana 发布于 07/07 09:24 浏览 114

使用普通的open、lseek操作文件,当文件达到2GB的时候写数据就会失败。这也是显然的,lseek的原型是

long lseek(int handle, long offset, int fromwhere);

long在32位操作系统上只有4个字节,只能寻址正负2GB的数据。lseek64是用于读写大文件的API,原型是

off64_t lseek64(int fd, off64_t offset, int whence);

通过这个函数就可以寻址超过2GB的大文件了。最后不要忘了为open加上O_LARGEFILE标记,或者直接使用open64函数打开文件,这二者是等价的。

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

点赞0
收藏0
分享

精彩评论

内容存在敏感词
确定要删除此文章、专栏、评论吗?
确定
取消

关注公众号