以下是源码(不解释):
#define __USE_LARGEFILE64
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int get_file_size( const char *filename )
{
struct stat64 buf;
if( stat64( filename, &buf ) < 0 ) {
return 0;
}
return buf.st_size;
}
int main( int argc, char *argv[] )
{
if( argc < 2 ) {
printf( "Usage: ./filesize filenamen" );
exit( 1 );
}
printf( "Filesize is %d bytesn", get_file_size( argv[1] ) );
return 0;
}
gcc filesize.3.c -o filesize -std=c99 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -g
转载请注明:爱开源 » C 取得大于2G文件的大小