成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

教會你Linux獲取文件大小方法

系統 Linux
在我們學習生活中經常會遇到問題和困難,就比如說我們在學習Linux時,比如怎樣Linux獲取文件大小的方法。前幾天在工作中需要寫一段代碼,獲取一些視頻文件的大小,心想:這還不簡單嗎?直接用標準C的文件操作函數就OK了。

在我們學習生活中經常會遇到問題和困難,就比如說我們在學習Linux時,比如怎樣Linux獲取文件大小的方法。前幾天在工作中需要寫一段代碼,獲取一些視頻文件的大小,心想:這還不簡單嗎?直接用標準C的文件操作函數就OK了。于是寫了下面的一段代碼來實現:

  1. unsigned long get_file_size(const char *filename)  
  2. {  
  3.     unsigned long size;  
  4.     FILE* fp = fopen( filename, "rb" );  
  5.     if(fp==NULL)  
  6.     {  
  7.         printf("ERROR: Open file %s failed.\n", filename);  
  8.         return 0;  
  9.     }  
  10.     fseek( fp, SEEK_SET, SEEK_END );  
  11.     size=ftell(fp);  
  12.     fclose(fp);  
  13.     return size;  

沒有想到的是,在程序執行后發現有的文件能正確的獲取大小,而有的文件則不能正確的獲取到文件大小,檢查了代碼,也沒有發現有什么不對的地方。但是在這過程中發現了一個問題,就是能正確獲取大小的文件都是相對比較小的文件,而出現錯誤的都是很大的文件。于是想到會不會是因為標準 C文件操作函數對超過一定大小的文件不支持所造成的呢,于是Google了一下,沒想到猜測是正確的,標準C的文件操作函數不支持對超過2G的文件讀取。

問題找到了,看來只有換一種方法來實現了,因為平時很少用到標準C的一些函數,所以,又只有求助于Google了,在看了網上不少的參考文章之后,發現調用stat函數可以正確的得到超大文件的狀態信息(當然包括文件大小),于是最終實現了如下的代碼:

  1. unsigned long get_file_size(const char *filename)  
  2. {  
  3.     struct stat buf;  
  4.     if(stat(filename, &buf)<0)  
  5.     {  
  6.         return 0;  
  7.     }  
  8.     return (unsigned long)buf.st_size;  

 從寫這么一個小小功能的函數可以看出,平時多積累一些計算機方面的知識真的是很重要的,同時對代碼的全面測試也是相當重要的,否則,看著很正確的代碼可能在某些情況下會給你帶來意想不到的麻煩。 這樣你就能學會Linux獲取文件大小的方法了。              

【編輯推薦】

  1. 掌握操作技巧 玩轉Linux桌面操作系統
  2. 各種各樣的Linux來自Linux個人開發者
  3. 倫敦證券啟用Linux操作系統平臺
  4. Linux基金會大動作
  5. Linux操作系統:普通用戶安全執行管理員程序
責任編輯:小霞 來源: 清華大學出版社
相關推薦

2009-12-09 14:56:54

Linux查看目錄文件

2009-12-15 14:29:04

2009-12-25 17:35:39

Linux安裝real

2009-12-14 18:04:38

Linux命令創建快照

2009-06-26 10:05:10

獲取文件大小

2009-12-15 17:10:39

優化Linux

2009-12-21 14:13:04

重復行uniq

2010-02-02 10:46:51

C++獲取文件大小

2010-05-24 10:16:40

SWaP分區

2009-12-17 13:40:42

Linux網卡安裝

2009-12-10 10:40:21

Linux ldd

2010-05-27 16:58:11

Linux查看文件大小

2009-12-10 10:18:44

Apache安裝

2009-12-03 17:50:04

Linux Samba

2010-01-07 15:00:39

Redhat Ente

2009-12-11 10:55:16

Linux啟動腳本

2009-12-14 17:13:04

Linux系統修改共享

2009-12-14 16:31:00

Linux安裝支付寶

2009-12-09 14:22:44

2020-07-22 07:45:00

JavaScript開發技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产一区二区三区观看不卡 | av免费成人| 欧美福利精品 | 黄色国产大片 | 久久久国产精品 | 7777奇米影视 | 成人免费黄视频 | 久久久国产一区二区三区 | 在线观看国产视频 | 91精品国产综合久久久密闭 | 看毛片网站| 国产日日操 | 国产精品美女久久久久久久久久久 | 成人欧美一区二区三区在线播放 | 夜夜骑首页 | 国产精品99久久久久久宅男 | 一级黄色毛片免费 | 国产成人精品一区二区 | jlzzjlzz国产精品久久 | 涩涩视频在线播放 | 91影院在线观看 | 国产精品久久久久久亚洲调教 | 九九热精品视频 | 成人天堂噜噜噜 | 亚洲欧美日韩在线 | 天堂网中文字幕在线观看 | 日韩电影在线一区 | 四虎永久免费在线 | 久久精品com | 欧美午夜激情在线 | 一区亚洲| 高清av电影| 精品视频久久久 | 欧美精品一区二区三 | 亚洲性爰 | 亚洲国产中文字幕 | 久久91精品国产一区二区 | 日韩av在线不卡 | 日韩视频专区 | 久久免费精品视频 | 亚洲欧美日韩网站 |