linux获取文件大小的几种方法
对于linux获取文件大小,有几种方式,首先是比较明显的方案,调用stat方式,该方式直接获取文件大小,比较明显,剩下的两种方式都是采用间接方式,将文件游标指向文件末尾,然后获取游标相对于文件开头的偏移量。
实现如下:
/* 第一种方式,直接使用stat的调用方式 */ size_t getfilesize1(const char *filepath) { struct stat statbuf; stat(filepath, &statbuf); return statbuf.st_size; } /* 使用linux系统函数的seek方式 */ size_t getfilesize2(const char *filepath) { int file; off_t offset; file = open(filepath, O_RDONLY); if( file == -1 ) { return 0; } offset = lseek(file, 0, SEEK_END); close(file); return (size_t)offset; } /* 使用C语言库函数的seek方式 */ size_t getfilesize3(const char *filepath) { FILE *fp; long offset; fp = fopen(filepath,"rb"); if( fp == NULL ) { return 0; } fseek(fp, 0, SEEK_END); offset = ftell(fp); fclose(fp); return (size_t)offset; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Matlab数组与矩阵
- 下一篇: linux C: lseek 获取文件长度