本文共 270 字,大约阅读时间需要 1 分钟。
我在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
经过我的试验,是没有用的。
转载地址:http://apldi.baihongyu.com/