Linux C 下的大文件操作

简介:
+关注继续查看

这里说的大文件指大小超过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

目录
相关文章
|
5天前
|
存储 Linux
Linux文件操作基础:快速入门指南和实用技巧
Linux文件操作基础:快速入门指南和实用技巧
|
1月前
|
Linux Shell C语言
Linux文件操作[简单函数]
简单对文件操作的函数介绍
22 0
|
1月前
|
Linux
Linux文件操作[提升函数]
Linux文件操作[提升函数]
19 0
|
1月前
|
存储 Linux Shell
Linux的文件操作
Linux的文件操作
38 0
|
1月前
|
Linux
Linux文件操作之压缩与解压缩
在Linux系统中,文件压缩和解压缩是常见的操作,它们可以节省磁盘空间和方便文件传输。本文将详细介绍Linux下常用的压缩和解压缩工具,包括tar、gzip、bzip2、zip等。我们将详细讲解每个工具的用法和选项,帮助读者灵活处理压缩和解压缩任务。
29 0
|
1月前
|
Linux 测试技术 开发工具
Linux文件操作之文本文件编辑与查找
在Linux系统中,文本文件编辑和查找是日常工作中经常遇到的任务。本文将详细介绍Linux下常用的文本文件编辑器和查找命令,包括vi/vim、nano等编辑器,以及grep、sed、awk等查找命令。我们将详细讲解每个工具的使用方法和常见用例,帮助读者高效处理文本文件。
47 0
|
1月前
|
Linux
Linux文件操作之文件管理与权限设置
在Linux系统中,文件管理是日常工作中必不可少的一部分。本文将详细介绍Linux文件管理的基本命令,包括创建、复制、移动、删除文件以及设置文件权限的方法。我们将深入讲解每个命令的用法和参数,并提供实际例子加深理解。
37 0
|
2月前
|
Java Linux PHP
【Linux】基础IO——文件操作|文件描述符|重定向|缓冲区
Linux下的文件操作、C语言下的文件操作、文件描述符、重定向的原理和缓冲区的理解。
|
2月前
|
存储 Linux C语言
Linux基础IO【文件操作】
Linux文件的理解与操作,关于C语言的文件操作回顾以及系统级文件操作接口的介绍,详细讲解,干货满满!
102 5
Linux基础IO【文件操作】
|
5月前
|
安全 Java Linux
【Linux】基础IO_文件操作
【Linux】基础IO_文件操作
相关产品
云迁移中心
推荐文章
更多