Solve Linux 2G File Size Limit

原因: Linux文件内部的偏移指针为有符号的32位整型 int

>man fseeko

SYNOPSIS
       #include <stdio.h>

       int fseeko(FILE *stream, off_t offset, int whence);

       off_t ftello(FILE *stream);

DESCRIPTION
       The  fseeko()  and  ftello()  functions  are identical to fseek() and ftell() (see fseek(3)), respec-
       tively, except that the offset argument of fseeko() and the return value of ftello() is of type off_t
       instead of long.

       On many architectures both off_t and long are 32-bit types, but compilation with
              #define _FILE_OFFSET_BITS 64
       will turn off_t into a 64-bit type.

Linux可以支持64-bit的文件指针 off_t

方法1:在MakeFile增加 gcc 参数 -D_FILE_OFFSET_BITS=64

方法2:在代码里 #define _FILE_OFFSET_BITS 64

并在代码中将fseek等函数替换为fseeko等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值