欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

c語言求文件大小的函數(shù),c語言如何獲取文件大小

c語言如何通過文件屬性獲取文件大小

c語言可以通過stat()函數(shù)獲得文件屬性,通過返回的文件屬性,從中獲取文件大小。

創(chuàng)新互聯(lián)服務項目包括朗縣網(wǎng)站建設、朗縣網(wǎng)站制作、朗縣網(wǎng)頁制作以及朗縣網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,朗縣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到朗縣省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

#include sys/stat.h ?可見以下結構體和函數(shù)

struct stat {

? _dev_t st_dev;

? _ino_t st_ino;

? unsigned short st_mode;

? short st_nlink;

? short st_uid;

? short st_gid;

? _dev_t st_rdev;

? _off_t st_size; ? //文件大小

? time_t st_atime;

? time_t st_mtime;

? time_t st_ctime;

? };

stat(const char *, struct _stat *); ?//根據(jù)文件名得到文件屬性

參考代碼:

#include?sys/stat.h

void?main(?)

{

struct?stat?buf?;

if?(?stat(?"test.txt",?buf?)??0?)

{

perror(?"stat"?);

return?;

}

printf("file?size:%d\n",?buf.st_size?);

}

如何用C語言獲取文件的大小

方法一:利用純C語言來獲取文件大小

unsigned long get_file_size(const char *filename){

unsigned long size;

FILE* fp = fopen( filename, "rb" );

if(fp==NULL){

printf("ERROR: Open file %s failed.\n", filename);

return 0;

}

fseek( fp, 0L, SEEK_END );

size=ftell(fp);

fclose(fp);

return size;

}

注:

ftell函數(shù)返回文件指針當前位置相對應文件首的便宜字節(jié)數(shù),參數(shù)為文件指針。

fseek函數(shù)用于移動文件指針,第一個參數(shù)是文件指針,第二個參數(shù)是偏移量(正數(shù)表示正向偏移,負數(shù)表示負向偏移),第三個參數(shù)設定文件從哪里偏移,有三個選擇:SEEK_SET(文件頭,其是常數(shù)0)、SEEK_CUR(文件當前位置,其是常數(shù)1)、SEEK_END(文件尾,其是常數(shù)2)。

優(yōu)缺點:好處是你只要會C語言,就能夠完全掌握而且十分容易理解這里面的道理。確定是純C語言目前只能讀取不超過2G的文件。所以對于超過2G的文件,其返回值是不正確的。

方法二:利用系統(tǒng)函數(shù)獲取

筆者使用Uinx/Linux,所以此處就只寫這類平臺上的文件大小獲許方式了。在Linux類平臺上,每個被系統(tǒng)所管理的文件都有一個文件屬性結構體(其中一個屬性就是文件大?。┡c其對應,這個結構體叫stat,其內(nèi)容在 /sys/stat.h中:

stat {

mode_t st_mode; //文件對應的模式,文件,目錄等

ino_t st_ino; //inode節(jié)點號

dev_t st_dev; //設備號碼

dev_t st_rdev; //特殊設備號碼

nlink_t st_nlink; //文件的連接數(shù)

uid_t st_uid; //文件所有者

gid_t st_gid; //文件所有者對應的組

off_t st_size; //普通文件,對應的文件字節(jié)數(shù)

time_t st_atime; //文件最后被訪問的時間

time_t st_mtime; //文件內(nèi)容最后被修改的時間

time_t st_ctime; //文件狀態(tài)改變時間

blksize_t st_blksize; //文件內(nèi)容對應的塊大小

blkcnt_t st_blocks; //偉建內(nèi)容對應的塊數(shù)量

}

文件的上述屬性,可以通過一個stat函數(shù)來獲取。

stat函數(shù)聲明形式:

stat(const char *restrict path, struct stat *restrict buf);

第一個參數(shù)是文件名,第二個參數(shù)是指向一個stat結構的指針。

由此我們很容易寫出如下函數(shù):

unsigned long get_file_size(const char *filename){

struct stat buf;

if(stat(filename, buf)0){

return 0;

}

return (unsigned long)buf.st_size;

}

在進行大文件處理時,顯然需要采取后者。

注:與stat函數(shù)類似的函數(shù)還有l(wèi)stat函數(shù)、fstat 函數(shù)

C語言中,怎么知道文件的大小?

你需要使用fseek函數(shù)將文件指針指向最后:

fseek(fp, 0L, SEEK_END);

sz = ftell(fp);

其中sz就是文件的大小。

當你知道文件的大小后,就可以通過fseek重新定義到文件開始的位置:

fseek(fp, 0L, SEEK_SET);

或使用下面的函數(shù)定義的文件開始:

rewind(fp);

可以到秒秒學上看看相關的內(nèi)容,上面的課程講解得可以的。

網(wǎng)頁標題:c語言求文件大小的函數(shù),c語言如何獲取文件大小
當前路徑:http://aaarwkj.com/article40/dsspjho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、ChatGPT、品牌網(wǎng)站建設、網(wǎng)站設計、手機網(wǎng)站建設、關鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管
日本av在线中文一区二区| 草草在线成年免费视频| 九九在线免费视频蜜臀| 黄片视频免费观看一起草| 在线不卡日本v二区| 少妇性生活视频免费观看| 国产日韩欧美精品激情| 久久麻豆精亚洲av品国产一区| 国产成人综合精品久久| 亚洲欧美国产在线日韩| 欧美午夜福利在线电影| 中文字幕乱码日韩一二三区| 禁止18黄色免费网站| 免费在线观看性生活视频| 国语对白刺激真实精品| 精品人妻一区两区三区| 水蜜桃成人在线视频免费观看| 熟年人妻一区二区三区| 一区二区三区中文在线播放| 人人澡人人看人人妻| 一区二区三区高清人妻| 欧美一区二区精品网站| 色偷偷91综合久久噜噜| 日韩视频播放一区二区| 熟妞人妻精品一区二区视频| 久久成人午夜免费电影| 中文字幕日韩欧美一区二区| 国产欧美日本一区二区| 亚洲伊人久久一区二区| 亚洲国产欧美日韩在线| 六十路人妻一区二区三区| 亚洲中文字幕少妇视频| 91在线视频欧美国产| 欧美一区二区三区日| 真实夫妻露脸爱视频九色网| 加勒比av免费在线播放| 男女视频午夜刺激一区二区| 日本精品动漫一区二区三区| 91福利免费在线看| 这里只有精品国产999| 国产又大又黄又粗的黄色|