欢迎光临散文网 会员登陆 & 注册

每天一个linux函数(文件类型 stat函数)

2022-05-31 19:54 作者:GXTon_阿通  | 我要投稿

window通常以后缀区分文件.比如: .c .h .txt  .pdf

linux下不以后缀区分文件.但是为了阅读方便,还是会加上后缀的.

linux中一共分为7种文件类型:

普通文件:

目录文件.

设备文件.

符号链接文件(类似与window的快捷方式).

惯导文件.

套接字文件.


stat函数是linux中的系统调用.用于获取文件相关的信息.

函数原型,可以通过 man 2 stat命令查看.

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

int stat(const char *pathname, struct stat *buf);

其中pathname: 用于指定一个需要查看属性的文件路径.

其中buf: struct stat类型的指针,用于指向一个struct stat结构体变量.

调用stat函数的时候,需要传入,一个struct stat变量的指针,

获取到的文件属性信息就记录在struct stat结构体中.

其中返回值: 成功返回0;失败返回-1,并设置error.

这个struct stat结构体就类似与window下一个文件的属性.

在window中右击一个文件,查看属性,就会有个窗口跳出来,上面写着文件的类型,名字,大小...

如下图:(linux中是以结构体显示,不像window以图形显示...)


在linux中这个结构体中都有什么内容呢?

其实和window很相似:

形参分析:


路径,当然是要用字符串表示.

在C语言中,字符串需要用指针指向它.

字符串有不同的长度,估计是在stat函数里面又判断,判断有没有执行了字符串的结尾.

所以不用传入长度.

(找一个机会,自己写一个传入指针的函数.)


第二个参数是一个结构体指针,

为什么是指针,是为了向外返回内容.

不止return可以返回内容.形参指针,也可以返回内容.


1,创建文件夹和文件


2,编写函数


3,因为要读取文件属性,

所以我们创建一个临时文件,读取它的属性.

test_file.txt


4,然后编译一下程序,make一下


5,运行程序



每天一个linux函数(文件类型 stat函数)的评论 (共 条)

分享到微博请遵守国家法律