这里说的大文件指大小超过4G的文件。
在32位环境下,linux默认打开、读、写超过4G的文件会返回错误。定义如下宏可以突破这个限制,对read/write和fread/fwrite同时有效。
注意它必须定义在所有头文件之前。
#ifndef _FILE_OFFSET_BITS
#define _FILE_OFFSET_BITS 64
#endif
或者在编译时添加如下参数:
-D_FILE_OFFSET_BITS=64-D_LARGEFILE_SOURCE
或者使用函数fopen64,但是该函数我的测试机上没有找到相关的说明,所以在我这里不可用。
_FILE_OFFSET_BITS的定义简单来说就是在32位机器上,使用64位的变量空间,长度增加了一倍。新的int就相当于原来的long int,这样就可以控制大于4G的文件了。
在大文件打开后,即可使用文件操作函数为所欲为了。
比较高级的用法:
Mmap方式,即内存映射的方法,简单说就是将文件分成片段,然后逐片的读到内存中并操作。
优点是性能很好,处理大文件的速度很快。
缺点是需要进程锁来锁住进程,并且需要保留每次操作的位置,用来下一次的操作。实现起来比较复杂,感兴趣的同学可以参考:
http://www.libing.net.cn/read.php/1252.htm
http://hi.baidu.com/vcprogrammer/blog/item/da863f4ff5533137aec3abec.html
分享到:
相关推荐
一般用C语言操作配置文件是一个比较麻烦的事,但是为何不试一试这个库文件那?Linux C语言的配置文件操作库,非常不错!
在Linux下C语言对文件操作的函数。如:open(),close(),write(),read()的使用。
在Linux下用C语言实现文件拷贝的代码
LINUX下C语言实现 两个文件合并成第三个文件
Linux C函数参考 文件操作篇 Linux C函数参考 文件操作篇 Linux C函数参考 文件操作篇
Linux下C语言编——文件操作.pdf
C语言模拟实现Linux文件系统 1、在内存中开辟一块空间来模拟文件系统的运行,不读写硬盘。 2、面向单用户、单任务,不考虑并发,不考虑文件属主、组等概念。 3、程序开始后,初始化并接收用户输入。若输入”enter”...
详细的linux 文件操作 相关linux文件操作的函数 代码都有
c常用文件操作函数.
利用c语言实现仿Linux的文件操作,包括: format-格式化; exit-安全退出·文件系统,保存信息; mkdir dirname :创建子目录; rmdir dirname :删除子目录. ls dirname :显示当前目录下信息. cd dirname :更改当前...
Linux下的C语言文件操作介绍,和标准C不同的文件操作方式
使用文件来模拟外存,进行数据结构设计和操作算法的设计,实现一个文件系统并实现基本的文件操作(为了简便文件系统,不考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容)。要求: 1、对程序的每一部分...
有时程序需要存储很大量的数据,或者在几个进程间交换数据,这时您可能考虑到使用临时文件。本文介绍了使用临时文件要考虑几个问题及使用mkstemp函数、tmpfile函数处理临时文件的方法。
用c++写的 可以在linux下读写ini文件操作
【资源说明】 基于C语言的Linux文件管理系统源码+详细代码注释(操作...基于C语言的Linux文件管理系统源码+详细代码注释(操作系统课程设计).zip基于C语言的Linux文件管理系统源码+详细代码注释(操作系统课程设计).zip
用于对csv表格的基本操作,如添加、修改、删除、排序、插入、设置文件属性等(转)
第一章 基础知识 ……………………………………………………………………………4 第二章 进程介绍 …………………………………………...第九章 Linux 下C 开发工具介绍 ……………………………………………………….87
对Linux下C语言编程--文件的操作编程作了详细的说明和给出了很好的例子
涵盖Linux C编程基础、开发环境、进程操作、文件操作、网路编程和Shell编程 视频教学:专门录制了16.8小时高清配套教学视频,赠送7小时专题视频,便于读者更加高效、直观地学习 内容全面:涵盖Linux下C语言...
操作系统课程设计报告Linux二级文件系统设计.doc