今天尝试像迅雷那样下载前建立临时文件,防止传输文件时空间出问题。当时当我建立一个大于2G的文件时,报File Size Limit Exceeded。百度了一番,原来是由于平常offset_t的大小为32位,通过程序创建的话,系统不支持大于2G的文件。所以需要改变offset_t的大小。
解决方法:
编译时加上-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 即可。目的是用于调整offset_t的大小,由于的32位INT变成64位
本文介绍了如何解决在创建大于2GB文件时遇到的FileSizeLimitExceeded错误。通过调整offset_t的大小,从32位升级到64位,使得程序能够支持更大的文件创建。
今天尝试像迅雷那样下载前建立临时文件,防止传输文件时空间出问题。当时当我建立一个大于2G的文件时,报File Size Limit Exceeded。百度了一番,原来是由于平常offset_t的大小为32位,通过程序创建的话,系统不支持大于2G的文件。所以需要改变offset_t的大小。
解决方法:
编译时加上-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 即可。目的是用于调整offset_t的大小,由于的32位INT变成64位

被折叠的 条评论
为什么被折叠?