今天尝试像迅雷那样下载前建立临时文件,防止传输文件时空间出问题。当时当我建立一个大于2G的文件时,报File Size Limit Exceeded。百度了一番,原来是由于平常offset_t的大小为32位,通过程序创建的话,系统不支持大于2G的文件。所以需要改变offset_t的大小。
解决方法:
编译时加上-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 即可。目的是用于调整offset_t的大小,由于的32位INT变成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位