今天面试,面试官问我c语言里面有木有函数计算一个文件的大小,是哪一个?
我纠结了一小会儿,我想有吗?当时也没回答出来,回来查才知道,用的是用lseek和ftell结合使用实现的。
The ftell() function returns the current position in an open file.
ftell()函数的作用是:返回文件指针当前的读/写的位置。
Returns the current file pointer position, or FALSE on failure.
如果函数执行成功,将返回当前的指针位置;如果执行失败,将返回False。
#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
long fileSize = 0;
FILE *pFile = fopen("t2.c","r");
if( pFile == NULL)
{
printf("Open File Error /n");
}
else
{
fseek(pFile, 0, SEEK_END);//移向END
fileSize = ftell(pFile);
printf("file size:%ld \n", fileSize);
}
fclose(pFile);
}
使用ls -l 或者ll查看,很准确。