Linux文件系统
获取文件的属性
stat通过文件路径获取属性
fstat通过文件描述符获取属性
示例代码
flen.h代码如下:
#ifndef __FLEN_H__
#define __FLEN_H__
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include "string.h"
#include "errno.h"
#include "stdio.h"
#include "stdlib.h"
off_t flen(const char *fname);
#endif
flen.cpp
#include "flen.h"
off_t flen(const char *fname)
{
struct stat statres;
if (stat(fname, &statres) < 0)
{
fprintf(stderr, "stat() %s\n", strerror(errno));
exit(1);
}
return statres.st_size;
}
main.cpp
#include "iostream"
#include "flen.h"
using namespace std;
int main(int argc, char **argv)
{
long len = 0;
if (argc < 2)
{
fprintf(stderr, "Usage....\n");
exit(1);
}
len = flen(argv[1]);
printf("st_size = %ld\n", len);
exit(0);
}
函数讲解
编译 运行?
这里采用的是cmake构建C++工程,只需要在当前路径下写CMakeLists.txt文件即可:
project(flen)
add_executable(flen main.cpp flen.cpp flen.h)
在工程路径下 运行一下代码