C語言獲取文件長度的方法
更新時間:2023年10月25日 09:16:53 作者:暴風雨中的白楊
這篇文章主要介紹了C語言獲取文件長度的相關知識,包括使用標準庫方法和使用Linux系統(tǒng)調(diào)用,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
C語言獲取文件長度
一、使用標準庫方法
#include <stdio.h>
long get_file_size(const char * filename ){
long size = 0;
FILE * fp = fopen(filename,"rb");
if( fp == NULL ) {
printf("open file %s failed\r\n",filename);
return 0;
}
// 移動文件指針到文件末尾
fseek(fp,0,SEEK_END);
// 獲取文件長度
size = ftell(fp);
fclose(fp); fp = NULL;
return size;
}二、使用Linux系統(tǒng)調(diào)用
在Linux操作系統(tǒng)下,可以使用stat函數(shù)來獲取文件信息,其中st_size字段表示文件的長度。
#include <stdio.h>
#include <sys/stat.h>
long get_file_size(const char * filename ){
struct stat st;
// 獲取文件信息
if( stat(filename,&st) == -1){
printf("get file %s 's info failed\r\n",filename);
return 0;
}
//S_ISLNK(st_mode):是否是一個連接
//S_ISREG是否是一個常規(guī)文件
//S_ISDIR是否是一個目錄
//S_ISCHR是否是一個字符設備
//S_ISBLK是否是一個塊設備
//S_ISFIFO是否是一個FIFO文件
//S_ISSOCK是否是一個SOCKET文件
// 檢查文件類型
if( !S_ISREG(st.st_mode)){
printf("%s 不是一個常規(guī)文件\r\n",filename);
return 0;
}
return st.st_size;
}到此這篇關于C語言獲取文件長度的文章就介紹到這了,更多相關C語言文件長度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

