資源簡介
在Linux環(huán)境下測試大文件(超過2G)的讀寫效率
代碼片段和文件信息
#include?“test.h“
long?long?get_filesize(const?char?*filename)
{
????struct?stat?buf;
????if((stat(filename&buf))<0)
????{
???????fprintf(stderr“EACCES:%s\n“strerror(EACCES));
???????errno=ENOENT;?
???????perror(filename);
???????return?0;?
????}
????return?(long?long)buf.st_size;
}
/*int?main(int?argcchar?*argv[])
{
??int?fdin;
??struct?timeval?tvStarttvEnd;
//??double?linStart=0linEnd=0ITime=0;
??int?ITime=0;
??char?*buf;
??//int?buf[SIZE2];
??if(argc!=2)
??{
????printf(“argument?is?wrong\n“);
????exit(1);
??}
??gettimeofday(&tvStartNULL);
??if((fd=open64(argv[1]O_RDWR|O_CREAT|O_TRUNC)S_IRWXU|S_IRWXG)==-1)
??{
????printf(“open?file?%s?error\n“argv[1]);
????exit(1);
??}
??gettimeofday(&tvEndNULL);
??ITime=tvEnd.tv_sec-tvStart.tv_sec;
??if(ITime<0)
??{
????printf(“error\n“);
????exit(1);
??}
??else
????printf(“The?cost?of?open?file?%s?is?%dsecond\n“argv[1]ITime);
??buf=(char?*)malloc(SIZE2);?
??for(i=0;i ????buf[i]=‘a(chǎn)‘;
??gettimeofday(&tvStartNULL);
??for(i=0;i ???if((n=write(fdbufSIZE2))!=(SIZE2))
???{
?????printf(“write?file?error\n“);
?????exit(1);
???}
??gettimeofday(&tvEndNULL);
??ITime=tvEnd.tv_sec-tvStart.tv_sec;
??if(ITime<0)
??{
????printf(“error\n“);
????exit(1);
??}
??else
????printf(“The?cost?of?creat?file?%s?(1KB?one?time)is?%dsecond\n“argv[1]ITime);
??printf(“file?%s?size?is?%lu\n“argv[1]get_filesize(argv[1]));
??close(fd);
??free(buf);
??return?0;
}*/
評論
共有 條評論