我在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

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

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐