这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战」
一、前言
在Linux下进行文件、目录编程时经常需要获取指定文件的属性信息,比如: 文件类型、大小、创建日期、修改日期等属性信息。
获取这些属性信息非常有用,比如: 打开一个设备文件时,为了防止未知错误,可以提前判断打开的设备文件是否是正确的类型。 拷贝文件时、读取文件时,mmap映射文件时,可以根据文件本身的大小,判断文件是否读写完毕。
Linux下有3种函数可以快速得到文件、目录的属性信息:
1 | cpp复制代码stat 、fstat、lstat |
详细的介绍如下:
1 | cpp复制代码#include <sys/types.h> |
在使用stat
函数获取目录的信息时,st_size
属性是没有的,目录的大小需要自己计算,里面可能包含了很多子目录等。
二、案例代码
下面使用state
函数编写示例: 程序运行时,从命令行传入路径,调用opendir
函数打开目录,循环遍历目录,读取目录下的所有文件,并判断每个文件的类型,空间大小等信息打印到终端显示。
1 | cpp复制代码#include <stdio.h> |
本文转载自: 掘金