入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

在32位系统中使用fseek和lseek或fwrite、write写大文件时,最大只能写2G左右的解决办法

创建时间:2014-07-07 投稿人: 浏览次数:107

我在32位linux系统下,用fwrite写文件时,发现最大只能写2G的文件。

原因是在用fwrite时,系统会用到fseek定位当前文件的位置,在32位系统中,最大只能定位到0x7FFFFFFF(fseek返回的是有符号整型的),所以文件大小有了限制。

解决办法是在编译时加上-D_FILE_OFFSET_BITS=64。

即:

gcc -Wall -g -D_FILE_OFFSET_BITS=64 seek.c   -o seek。

网上说在文件中定义:#define   _FILE_OFFSET_BITS 64

经过我的试验,是没有用的。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。