最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

fseek

語法:

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

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

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

ftell

語法:

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

代碼如下:ftell()函數(shù)返回stream(流)當前的文件位置,如果發(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;
}

相關文章

最新評論

五台县| 阿坝| 新安县| 定州市| 南靖县| 陕西省| 沙田区| 荣成市| 溧阳市| 利辛县| 榆树市| 文化| 乐清市| 阳新县| 紫金县| 津市市| 吴江市| 张家川| 金塔县| 绵阳市| 房产| 铜梁县| 民县| 娄烦县| 绥宁县| 哈密市| 潜江市| 镇原县| 嘉兴市| 乃东县| 卢氏县| 宝鸡市| 木里| 太保市| 建始县| 沁源县| 赫章县| 西城区| 民权县| 广安市| 安岳县|