linux中打开大文件的问题(大于4G)

来源:互联网 发布:核磁共振碳谱常用数据 编辑:程序博客网 时间:2024/04/25 02:48

    http://blog.csdn.net/akerlis/article/details/2223476

 打开一个大于4G的文件的问题,开始是用标准C函数fopen来打开,在Windows下跑没有问题,但是移植到Linux下时,却出现打开文件错误,测试发现打开小文件没有问题,这可能跟系统的处理有关,仔细一想,Linux下不可能不支持大文件啊,应该有别的接口,所以上网查了一下,好不容易查到一个英文网页讲这个东西,叫LFS(Large file support),Linux的标准底层C库(Glibc2.2.3以上)实现了对大文件的支持,并且专为定义了一套API,具体在Linux下打开大文件的方法有以下三种:

1。编译时使用“gcc -D_FILE_OFFSET_BITS=64”选项,这样所有的文件操作都会使 用64位来处理(也即大文件处理)
2。define 
_LARGEFILE_SOURCE 和 _LARGEFILE64_SOURCE,这样可以直接使用LFS的  接口,如open64.
3。使用Linux系统函数open, 并且在打开文件的参数中加入
O_LARGEFILE,即
 open("fileName", O_RDONLY | O_LARGEFILE)

我用的是第三种,没有问题。
0 0
原创粉丝点击