[记录]如何打开一个大于4G的文件 1

把操作系统换到64位,但是发现依旧无法打开大于4G的文件,于是到网上一通google。各种各样的方法很多,先从简单的试起吧~
定义宏,使其可以处理大文件。例子,输入一个文件名,尝试打开该文件并返回结果。

#define _FILE_OFFSET_BITS 64
#define _USE_FILE_OFFSET64
#define _USE_LARGEFILE64
#define _LARGEFILE64_SOURCE
#include <iostream>
#include <stdio.h>

int main(int argc,  char *argv[]) {
	char *filename=argv[1];
	printf("Loading %s \n", filename);
	FILE * f = fopen(filename, "r");
	if (f == NULL){
		printf("The File is Null!!!\n");
		return 0;
	}
	else{
		printf("The File is Exist!\n");
		return 1;
	}
}

用eclipse build了一把,居然成了。哈哈~
看来前面define那一坨是不可少的

#define _FILE_OFFSET_BITS 64
#define _USE_FILE_OFFSET64
#define _USE_LARGEFILE64
#define _LARGEFILE64_SOURCE

至于“在makefile编译选项里加上-D_FILE_OFFSET_BITS=64 -D_LARGE_FILE” maybe,有机会再试吧。

分享到: 更多

One comment on “[记录]如何打开一个大于4G的文件

  1. Reply Viagra 9月 12,2011 19:50

    You are not right. I am assured. I can defend the position.

Leave a Reply