在Linux下处理超过2GB的大文件
2009-12-05 21:15
633 查看
在Linux操作系统下的open,lseek,fstat等函数只能操作大小小于2GB的文件。如果用户需要处理的文件大于2GB,则必须使用另外一组函数,即open64,lseek64,fstat64等函数。这些函数能够创建或者打开超过2GB的文件,获取这些大文件的大小等等。
必须注意的是:如果代码中使用到这些函数,应该添加编译器选项:-D_LARGEFILE_SOURCE
例如,下面给出的代码用于获取大小超过4GB的文件的大小(长度):
必须注意的是:如果代码中使用到这些函数,应该添加编译器选项:-D_LARGEFILE_SOURCE
例如,下面给出的代码用于获取大小超过4GB的文件的大小(长度):
#include <unistd.h> #include <sys/stat.h> #include <stdio.h> #include <fcntl.h> int main(int argc,char*argv[]) { if (argc!=2) { printf("Usage: <Program Name> input_file_path/n"); return 0; } const char*path=argv[1]; int fd=open64(path,O_RDONLY); if (fd==-1) { printf("Can not open %s/n",path); return 0; } //获取文件的大小 off64_t size; struct stat64 sbuf; if (fstat64(fd,&sbuf)<0) { close(fd); printf("fstat failed/n"); return 0; } size=sbuf.st_size; printf("File size is %llx/n",size); close(fd);
相关文章推荐
- linux下编译程序使其处理超过2G的大文件
- linux 正规表达式 & 文件格式处理
- 一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
- 2t3ik、ddgs与Linux异常文件下载处理
- Linux汇编教程13:系统调用和文件处理上
- Linux文件处理命令
- Linux大文件快速处理小方法
- 正则表达式与文件格式处理-Linux(笔记)
- Linux 运行时库文件路径的处理
- linux文件处理命令 touch cat tac more less head tail
- linux 下超过2G大文件监控
- Linux必学60个命令文件处理(l转帖)
- linux高级文件系统管理概述:处理交换分区、设置文件系统配额、配置raid和逻辑卷
- Linux下对各种压缩文件的处理方法
- hadoop 中MapReduce因为文件打开文件数目超过linux限制报错
- Linux几个常用文件处理命令
- linux笔记四之文件处理
- Linux自学笔记(五)常用命令之文件处理命令
- Linux常用命令(4)之文件处理命令