C語言獲取文件長度的方法
更新時(shí)間:2023年10月25日 09:16:53 作者:暴風(fēng)雨中的白楊
這篇文章主要介紹了C語言獲取文件長度的相關(guān)知識(shí),包括使用標(biāo)準(zhǔn)庫方法和使用Linux系統(tǒng)調(diào)用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
C語言獲取文件長度
一、使用標(biāo)準(zhǔn)庫方法
#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; } // 移動(dòng)文件指針到文件末尾 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):是否是一個(gè)連接 //S_ISREG是否是一個(gè)常規(guī)文件 //S_ISDIR是否是一個(gè)目錄 //S_ISCHR是否是一個(gè)字符設(shè)備 //S_ISBLK是否是一個(gè)塊設(shè)備 //S_ISFIFO是否是一個(gè)FIFO文件 //S_ISSOCK是否是一個(gè)SOCKET文件 // 檢查文件類型 if( !S_ISREG(st.st_mode)){ printf("%s 不是一個(gè)常規(guī)文件\r\n",filename); return 0; } return st.st_size; }
到此這篇關(guān)于C語言獲取文件長度的文章就介紹到這了,更多相關(guān)C語言文件長度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C++中遞增運(yùn)算符重載的實(shí)現(xiàn)
本文主要詳解運(yùn)算符重載里的遞增運(yùn)算符重載;遞增和遞減原理是一樣的,這里就只分享遞增的重載;提到遞增遞減,我們都知道又前置和后置兩種方法, 那今天就詳解一下前置遞增和后置遞增的細(xì)節(jié),拿捏遞增運(yùn)算符重載2022-06-06Qt把文件夾從A移動(dòng)到B的實(shí)現(xiàn)示例
本文主要介紹了Qt把文件夾從A移動(dòng)到B的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03