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

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

系統(tǒng) Linux
在我們學(xué)習(xí)生活中經(jīng)常會遇到問題和困難,就比如說我們在學(xué)習(xí)Linux時,比如怎樣Linux獲取文件大小的方法。前幾天在工作中需要寫一段代碼,獲取一些視頻文件的大小,心想:這還不簡單嗎?直接用標(biāo)準(zhǔn)C的文件操作函數(shù)就OK了。

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

  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;  

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

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

  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;  

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

【編輯推薦】

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

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命令創(chuàng)建快照

2009-06-26 10:05:10

獲取文件大小

2009-12-15 17:10:39

優(yōu)化Linux

2009-12-21 14:13:04

重復(fù)行uniq

2010-02-02 10:46:51

C++獲取文件大小

2010-05-27 16:58:11

Linux查看文件大小

2010-05-24 10:16:40

SWaP分區(qū)

2009-12-17 13:40:42

Linux網(wǎng)卡安裝

2009-12-10 10:40:21

Linux ldd

2010-01-07 15:00:39

Redhat Ente

2009-12-14 17:13:04

Linux系統(tǒng)修改共享

2009-12-14 16:31:00

Linux安裝支付寶

2009-12-11 10:55:16

Linux啟動腳本

2009-12-10 10:18:44

Apache安裝

2009-12-03 17:50:04

Linux Samba

2009-12-09 14:22:44

2019-07-31 08:55:01

LinuxUbuntu技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 在线中文字幕日韩 | 日韩二区 | 91色视频在线观看 | 欧美日本在线 | 欧美群妇大交群中文字幕 | 日韩欧美在线一区 | 天天干天天草 | 欧美日韩视频 | 亚洲精品免费看 | 亚洲视频免费 | 91视频在线观看免费 | 久久精品欧美一区二区三区不卡 | 九九久久免费视频 | 亚洲久久一区 | 精品一区二区在线观看 | 在线日韩 | 一区二区三区日韩 | 日本一区精品 | 黄色在线免费观看 | 国产97在线视频 | 欧美夜夜 | 日韩精品一区二区三区在线播放 | 欧美特级黄色 | 日本三级电影在线看 | 欧美日韩中文字幕在线 | 中文字幕一区二区三区在线观看 | 一区二区三区视频在线观看 | 成人欧美一区二区三区 | 久久久久久久久国产精品 | 韩国欧洲一级毛片 | 99热精品在线观看 | 日本天堂视频 | 在线91| 欧美日韩视频网站 | 中文字幕国产精品 | 欧美一级黄色片在线观看 | 国产精品毛片在线 | 国产精品免费大片 | h视频在线免费 | 亚洲精品一区二区另类图片 | 美女视频一区二区三区 |