欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用C語言獲取文件的大小示例分享

 更新時間:2014年08月20日 11:55:41   投稿:hebedich  
在linux下獲取一個指定文件大?。ㄗ止?jié)為單位)的代碼。查了一下發(fā)現(xiàn)是使用系統(tǒng)調(diào)用stat來實(shí)現(xiàn),那么如何使用C語言或C++語言來寫一個通用的函數(shù)來獲取指定文件大小的函數(shù)呢?

查了一下發(fā)現(xiàn)同C語言的文件操作函數(shù)便可以很容易的實(shí)現(xiàn)這樣的功能。在自己實(shí)現(xiàn)的函數(shù)中使用到的函數(shù)就只有fseek和ftell。它們的說明如下:

fseek

語法:

#include <stdio.h> int fseek( FILE *stream, long offset, int origin );

函數(shù)fseek()為給出的流設(shè)置位置數(shù)據(jù). origin的值應(yīng)該是下列值其中之一(在stdio.h中定義):

名稱 說明
SEEK_SET 從文件的開始處開始搜索
SEEK_CUR 從當(dāng)前位置開始搜索
SEEK_END 從文件的結(jié)束處開始搜索
fseek()成功時返回0,失敗時返回非零. 你可以使用fseek()移動超過一個文件,但是不能在開始處之前. 使用fseek()清除關(guān)聯(lián)到流的EOF標(biāo)記.

ftell

語法:

#include <stdio.h> long ftell( FILE *stream );

代碼如下:ftell()函數(shù)返回stream(流)當(dāng)前的文件位置,如果發(fā)生錯誤返回-1.

#include <sys/stat.h>  
#include <unistd.h>  
#include <stdio.h>  
/* 
  函數(shù)名:getFileSize(char * strFileName) 
  功能:獲取指定文件的大小 
  參數(shù): 
    strFileName (char *):文件名 
  返回值: 
    size (int):文件大小 
 */
int getFileSize(char * strFileName)
{
  FILE * fp = fopen(strFileName, "r");
  fseek(fp, 0L, SEEK_END);
  int size = ftell(fp);
  fclose(fp);
  return size;
}
/* 
  函數(shù)名:getFileSizeSystemCall(char * strFileName)  
  功能:獲取指定文件的大小 
  參數(shù): 
    strFileName (char *):文件名 
  返回值: 
    size (int):文件大小 
 */
int getFileSizeSystemCall(char * strFileName)
{
  struct stat temp;
  stat(strFileName, &temp);
  return temp.st_size;
}
int main()
{
  printf("size = %d/n", getFileSize("getFileSize.cpp"));
  printf("size = %d/n", getFileSizeSystemCall("getFileSize.cpp"));
  return 0;
}

相關(guān)文章

  • C++ 遞歸遍歷文件并計算MD5的實(shí)例代碼

    C++ 遞歸遍歷文件并計算MD5的實(shí)例代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于C++ 遞歸遍歷文件并計算MD5的實(shí)例代碼,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-07-07
  • C++數(shù)據(jù)結(jié)構(gòu)與算法之哈夫曼樹的實(shí)現(xiàn)方法

    C++數(shù)據(jù)結(jié)構(gòu)與算法之哈夫曼樹的實(shí)現(xiàn)方法

    這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)與算法之哈夫曼樹的實(shí)現(xiàn)方法,簡單說明了哈夫曼樹的原理,并結(jié)合具體實(shí)例形式分析了C++實(shí)現(xiàn)哈夫曼樹的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • 簡要對比C語言中三個用于退出進(jìn)程的函數(shù)

    簡要對比C語言中三個用于退出進(jìn)程的函數(shù)

    這篇文章主要介紹了C語言中三個用于退出進(jìn)程的函數(shù)的對比,分別為_exit()函數(shù)和on_exit()函數(shù)以及atexit()函數(shù),需要的朋友可以參考下
    2015-08-08
  • C++ 中CListCtrl的每個項(xiàng)都顯示不同的提示信息

    C++ 中CListCtrl的每個項(xiàng)都顯示不同的提示信息

    這篇文章主要介紹了C++ 中CListCtrl的每個項(xiàng)都顯示不同的提示信息的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 深入解析C++中的引用類型

    深入解析C++中的引用類型

    引用指的是對一個對象的引用。那么什么是對象?在c++中狹義的對象指的是用類,結(jié)構(gòu),聯(lián)合等復(fù)雜數(shù)據(jù)類型來聲明的變量,如 MyClass myclass,CDialog mydlg,等等
    2013-09-09
  • 分享常用的3個C++小技巧

    分享常用的3個C++小技巧

    這篇文章主要分享了常用的3個C++小技巧,
    2021-12-12
  • C++遍歷文件夾下的所有文件

    C++遍歷文件夾下的所有文件

    數(shù)據(jù)分多個文件存儲,讀取數(shù)據(jù)就需要對多個文件進(jìn)行操作。下面通過實(shí)例代碼給大家講解C++遍歷文件夾下的所有文件,感興趣的的朋友一起看看吧
    2017-08-08
  • C++實(shí)現(xiàn)簡單通訊錄

    C++實(shí)現(xiàn)簡單通訊錄

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單通訊錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言制作簡易金山打字通功能的代碼

    C語言制作簡易金山打字通功能的代碼

    今天小編就為大家分享一篇關(guān)于C語言制作簡易金山打字通功能的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 老生常談C++ explicit關(guān)鍵字

    老生常談C++ explicit關(guān)鍵字

    這篇文章主要介紹了C++ explicit關(guān)鍵字,explicit關(guān)鍵字只需用于類內(nèi)的單參數(shù)構(gòu)造函數(shù)前面,由于無參數(shù)的構(gòu)造函數(shù)和多參數(shù)的構(gòu)造函數(shù)總是顯式調(diào)用,這種情況在構(gòu)造函數(shù)前加explicit無意義,需要的朋友可以參考下
    2023-03-03

最新評論