用C說話獲得文件的年夜小示例分享。本站提示廣大學習愛好者:(用C說話獲得文件的年夜小示例分享)文章只能為提供參考,不一定能成為您想要的結果。以下是用C說話獲得文件的年夜小示例分享正文
查了一下發明同C說話的文件操作函數即可以很輕易的完成如許的功效。在本身完成的函數中應用到的函數就只要fseek和ftell。它們的解釋以下:
fseek
語法:
#include <stdio.h> int fseek( FILE *stream, long offset, int origin );
函數fseek()為給出的流設置地位數據. origin的值應當是以下值個中之一(在stdio.h中界說):
稱號 解釋
SEEK_SET 從文件的開端處開端搜刮
SEEK_CUR 從以後地位開端搜刮
SEEK_END 從文件的停止處開端搜刮
fseek()勝利時前往0,掉敗時前往非零. 你可使用fseek()挪動跨越一個文件,然則不克不及在開端處之前. 應用fseek()消除聯系關系到流的EOF標志.
ftell
語法:
#include <stdio.h> long ftell( FILE *stream );
代碼以下:ftell()函數前往stream(流)以後的文件地位,假如產生毛病前往-1.
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
/*
函數名:getFileSize(char * strFileName)
功效:獲得指定文件的年夜小
參數:
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;
}
/*
函數名:getFileSizeSystemCall(char * strFileName)
功效:獲得指定文件的年夜小
參數:
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;
}