32位Linux文件大小限制
线上程序不断重启,查看log发现是进程因为SIGXFSZ信号退出。对过大的文件进行操作的时候会产生此信号,一般只在32位机器上出现,文件大小限制为2G。用lsof查看进程打开的文件,果然有一个文件达到2G。 解决方案:编译时加上参数:-D_FILE_OFFSET_BITS=64;代码中调用lseek时参数为off_t(不要为int或long,否则在32位和64位中表现不同)。
·
线上程序不断重启,查看log发现是进程因为SIGXFSZ信号退出。对过大的文件进行操作的时候会产生此信号,一般只在32位机器上出现,文件大小限制为2G。用lsof查看进程打开的文件,果然有一个文件达到2G。
解决方案:编译时加上参数:-D_FILE_OFFSET_BITS=64;代码中调用lseek时参数为off_t(不要为int或long,否则在32位和64位中表现不同)。
附上一个链接,linux大文件支持:http://users.suse.com/~aj/linux_lfs.html,现在64位系统很少关注这个问题了。
更多推荐
已为社区贡献1条内容
所有评论(0)