linux下操作大于2G文件
来源:互联网 发布:云服务器绑定域名视频 编辑:程序博客网 时间:2024/05/17 09:34
1、包含所有头文件以前,先定义这些宏:
#ifndef __USE_FILE_OFFSET64
#define __USE_FILE_OFFSET64
#endif
#ifndef __USE_LARGEFILE64
#define __USE_LARGEFILE64
#endif
#ifndef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE
#endif
2、使用open打开文件的时候,加上O_LARGEFILE标志:
int fd = open("test.dat", O_RDWR|O_APPEND|O_CREAT|O_LARGEFILE, 0666);
read(), write()等与一般的用法一致,无变化。
3、注意lseek()函数,文件未超过2G的时候,一切工作良好;
文件超过2G后,调用返回-1,errno为EOVERFLOW (errno=75, msg=Value too large for defined data type)
需要使用lseek64()代替lseek()。很奇怪,定义了宏以后,并未自动将lseek变成lseek64。(知道原因的朋友可以教教我)
4、注意stat()函数,传入的文件如果在2G内,工作良好;
传入的文件如果超过2G,返回-1, errno为EOVERFLOW (errno=75, msg=Value too large for defined data type)
应该这样使用:struct stat64 st; stat64("file", &st);
此外,还可以用fopen64,也要先加上上面3个宏定义。
具体的可以去看一下fcntl.h这个头文件
#ifndef __USE_FILE_OFFSET64
#define __USE_FILE_OFFSET64
#endif
#ifndef __USE_LARGEFILE64
#define __USE_LARGEFILE64
#endif
#ifndef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE
#endif
2、使用open打开文件的时候,加上O_LARGEFILE标志:
int fd = open("test.dat", O_RDWR|O_APPEND|O_CREAT|O_LARGEFILE, 0666);
read(), write()等与一般的用法一致,无变化。
3、注意lseek()函数,文件未超过2G的时候,一切工作良好;
文件超过2G后,调用返回-1,errno为EOVERFLOW (errno=75, msg=Value too large for defined data type)
需要使用lseek64()代替lseek()。很奇怪,定义了宏以后,并未自动将lseek变成lseek64。(知道原因的朋友可以教教我)
4、注意stat()函数,传入的文件如果在2G内,工作良好;
传入的文件如果超过2G,返回-1, errno为EOVERFLOW (errno=75, msg=Value too large for defined data type)
应该这样使用:struct stat64 st; stat64("file", &st);
此外,还可以用fopen64,也要先加上上面3个宏定义。
具体的可以去看一下fcntl.h这个头文件
0 0
- linux下操作大于2G文件
- 32位Linux下操作64位(4G以上)大文件的总结
- linux环境下操作特大文件
- Linux下操作带空格的文件
- linux下操作zip文件命令大全
- linux下操作
- linux下操作tomcat
- Linux下操作Mysql
- linux下操作Mysql
- Linux下操作Mysql
- Linux下操作Mysql
- linux下操作mysql
- linux下操作mysql
- linux下操作GPIO
- linux下操作mangodb
- linux下操作远程主机文件的几种方法
- 在linux下操作pcap文件的各种方法整理
- .net 下操作 Excel 文件
- SQL Server 临时表的使用以及临时表数据插入问题
- tomcat
- 离线.net3.5的制作
- LEADTOOLS HTML5 Demos汇总
- Mac下SVN无法上传静态库(.a)文件
- linux下操作大于2G文件
- 你还不知道这些事儿,你2014年怎么混!
- nginx跳转
- Oracle 正则表达式函数-REGEXP_REPLACE 使用例子
- 黑马程序员_IO_字节流&转换流
- CustomerWise助力网目信息,支持全球IT外包运维流程化管理
- JS冒泡事件以及阻止
- 黑马程序员_笔记十三_static关键字
- linux 内核设计与实现(第二章笔记)