亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Linux 下C語言獲取文件大小

2020-07-27 18:53:24
字體:
來源:轉載
供稿:網友

Linux 下C語言獲取文件大小

C語言是一種比較底層的語言,有時在其他語言中很容易操作的事情,在c語言中就比較麻煩,例如獲取一個文件的大小。Java中File類有個length函數,Python中os.path包中有個getsize函數,C語言中卻沒有直接對應的函數獲取文件大小。

       目前,網上有一種流傳很廣的方法,讀取文件到內存,然后跳轉到文件末尾,查看跳轉的長度。代碼如下:

int file_size(char* filename) {   FILE *fp=fopen(filename,"r");   if(!fp) return -1;   fseek(fp,0L,SEEK_END);   int size=ftell(fp);   fclose(fp);      return size; } 

上述方法利用fseek移動一個文件的存取位置到文件的末尾,然后利用ftell獲得目前的文件訪問位置。這種方法可以認為是一種間接的獲取方式。雖說可以獲得文件大小,但是有兩個缺點。首先,ftell的返回值為long,在不同環境下占用的字節數也不同,這就可能存在long是四個字節的情況。此時,獲取的文件大小就不能超過2G,否則就會出錯。

但是,上述缺點在大多數情況下都沒問題,超大文件還可以通過fsetpos和fgetpos獲取文件大小。最致命的缺陷就是它需要加載文件到內存,然后跳轉到文件末尾,這個操作非常耗時!可能在讀取少量文件時體現不出,但是當文件達到上萬個時,速度就會慢的要命,這種方法相當于把所有的文件都讀到內存中一遍!

如果可能,盡量避免采用上述間接的方式獲取文件大小。在Linux下,還有一種更簡單的方式,通過讀取文件信息獲得文件大小,速度也快很多。代碼如下:

#include <sys/stat.h> int file_size2(char* filename) {   struct stat statbuf;   stat(filename,&statbuf);   int size=statbuf.st_size;    return size; } 

這種方式首先獲得相關文件的狀態信息,然后從狀態信息中讀取大小信息。由于沒有讀取文件的操作,所以操作速度非常快。強烈建議大家在linux下使用這種方式。Windows平臺下肯定也有類似的函數讀取文件信息,不過本人常年不在windows下編程,所以在此不做介紹。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美色欧美亚洲高清在线视频| 中文国产成人精品久久一| 亚洲精品国产福利| 777午夜精品福利在线观看| 欧美电影免费观看高清| 欧美伊久线香蕉线新在线| 国产精品99久久99久久久二8| 国产成人高潮免费观看精品| 亚洲天堂免费观看| 亚洲日本中文字幕免费在线不卡| 中文字幕亚洲综合久久| 久久久久久久久久av| 国产日韩精品在线播放| 欧美成人性生活| 亚洲xxxx在线| 久久精品一偷一偷国产| 日韩极品精品视频免费观看| 91干在线观看| 成人在线国产精品| 国产精品视频在线播放| 欧美高清自拍一区| 黑人巨大精品欧美一区免费视频| 亚洲精品xxx| 欧美日韩亚洲91| 97在线精品视频| 久久成人一区二区| 亚洲视频视频在线| 国产成人97精品免费看片| 日本最新高清不卡中文字幕| 欧美激情手机在线视频| 久久久久久伊人| 日韩精品极品在线观看播放免费视频| 日韩福利视频在线观看| 一区二区三区视频免费在线观看| 欧美性xxxxxxxxx| 国产精品久久一区| 欧美日韩国产专区| 亚洲第一区在线| 国产精品流白浆视频| 亚洲美女在线观看| 欧美在线不卡区| 日韩av网址在线观看| 91av中文字幕| 国产97在线|亚洲| 亚洲人成绝费网站色www| 久久久久久九九九| 68精品久久久久久欧美| 日韩激情视频在线播放| 91在线免费观看网站| 国产精品扒开腿做| 中文字幕亚洲欧美| 欧美日韩中文字幕在线视频| 日韩高清免费观看| 国产一区私人高清影院| 亚洲www在线| 久久99国产精品久久久久久久久| 国产精品狼人色视频一区| 亚洲а∨天堂久久精品9966| 欧美大片在线看| 国产精品美女久久久久久免费| 川上优av一区二区线观看| 日韩一区二区三区xxxx| 亚洲激情在线观看| 国产精品成人国产乱一区| 国产成人激情小视频| 欧美一区二区三区艳史| 国产成人啪精品视频免费网| 日韩在线观看免费高清完整版| 中日韩午夜理伦电影免费| 一区二区成人av| 日韩国产高清视频在线| 亚洲美女动态图120秒| 亚洲综合中文字幕在线| 欧美日韩999| 国产999精品| 国外成人在线直播| 久久久黄色av| 国内精品一区二区三区四区| 日韩欧美综合在线视频| 亚洲人成人99网站| 国模精品一区二区三区色天香| 97人人模人人爽人人喊中文字| 亚洲精品日韩欧美| 亚洲免费视频网站| 最新91在线视频| 日韩中文综合网| 一区二区三区无码高清视频| 国产精品欧美久久久| 中文字幕在线看视频国产欧美| 欧美国产亚洲视频| 亚洲高清一区二| 亚洲精品综合久久中文字幕| 91精品久久久久久久久久另类| 精品亚洲国产成av人片传媒| 日韩精品中文字幕在线| 国产精品热视频| 国产欧美精品一区二区三区-老狼| 美女黄色丝袜一区| 日韩欧美高清在线视频| 亚洲欧美资源在线| 这里精品视频免费| 国产日韩在线精品av| 久久久久中文字幕2018| 久久这里只有精品视频首页| 狠狠做深爱婷婷久久综合一区| 久久激情五月丁香伊人| 欧美激情xxxx性bbbb| 成人亲热视频网站| 亚洲3p在线观看| 亚洲国产福利在线| 国产亚洲精品美女久久久久| 中文字幕一区日韩电影| 91久久综合亚洲鲁鲁五月天| 神马久久久久久| 亚洲精品一区久久久久久| 亚洲高清av在线| 欧美黄网免费在线观看| 亚洲成人1234| 日本精品在线视频| 欧美精品日韩三级| 日韩欧美精品网站| 欧美大片欧美激情性色a∨久久| 久久91亚洲精品中文字幕| 国产成人91久久精品| 国产精品入口日韩视频大尺度| 国产91对白在线播放| 97视频在线观看视频免费视频| 日韩一区二区精品视频| 国产精品免费网站| 亚洲色图25p| 日韩av在线免播放器| 国产欧美精品一区二区三区-老狼| 欧美在线免费观看| 久久福利视频导航| 欧美日韩一区二区在线播放| 91夜夜揉人人捏人人添红杏| 亚洲美女动态图120秒| 国产精品丝袜高跟| 日韩国产在线播放| 国产成人精品免费视频| 麻豆乱码国产一区二区三区| 欧美视频在线观看 亚洲欧| 亚洲国产天堂网精品网站| 宅男66日本亚洲欧美视频| 色伦专区97中文字幕| 日韩美女激情视频| 欧美国产日本高清在线| 91免费精品国偷自产在线| 亚洲free性xxxx护士白浆| 青青草原成人在线视频| 亚洲va久久久噜噜噜久久天堂| 中文字幕日韩欧美在线| 久久精品最新地址| 精品中文字幕在线2019| 伊人久久久久久久久久久久久| 日韩一区二区欧美| 91精品国产综合久久久久久蜜臀| 欧美电影在线观看高清| 国产精品人人做人人爽| 国产成人在线亚洲欧美| 日韩欧美国产成人| 欧美成人免费全部| 亚洲视频欧洲视频| 在线电影中文日韩|