- 功能用途方面
- stat函数
- 主要用于获取单个文件(包括普通文件、目录、符号链接、设备文件等各种类型的文件)的详细信息。例如,它可以告诉您文件的大小(通过
st_size
成员)、文件的类型(通过解析st_mode
来判断是普通文件、目录还是其他类型)、文件的权限(包括所有者、组和其他用户的读/写/执行权限,也是从st_mode
中获取相关位来判断)、文件的访问时间(st_atime
)、修改时间(st_mtime
)和状态改变时间(st_ctime
)等众多属性。 - 比如,当您想要知道一个文本文件的字节数、或者判断一个路径指向的是文件还是目录、又或者查看文件的最后修改日期等情况时,就可以使用
stat
函数。
- 主要用于获取单个文件(包括普通文件、目录、符号链接、设备文件等各种类型的文件)的详细信息。例如,它可以告诉您文件的大小(通过
- statfs函数
- 重点是获取文件系统相关的信息。它会返回文件系统的总体属性,如文件系统的块大小(
f_bsize
),这表示文件系统存储数据的基本单位大小;总块数(f_blocks
),即文件系统总的存储块数量;可用块数(f_bfree
),也就是文件系统中还未被使用的块数量;文件系统类型(f_type
)等。 - 例如,在磁盘空间管理程序中,要查看某个磁盘分区(也就是文件系统)还有多少空间可用,就可以使用
statfs
函数来获取总块数和可用块数等信息,从而计算出磁盘空间的使用情况。
- 重点是获取文件系统相关的信息。它会返回文件系统的总体属性,如文件系统的块大小(
- stat函数
- 参数和返回值方面
- stat函数
- 参数:通常接受一个文件路径(可以是绝对路径或者相对路径)作为参数,用于指定要获取信息的文件。例如,在
int stat(const char *path, struct stat *buf);
中,path
就是文件路径。 - 返回值:如果成功获取文件的状态信息,返回0;如果出现错误(如文件不存在、权限不足等情况),返回 - 1,并且会设置
errno
来指示具体的错误类型。例如,errno
可能被设置为ENOENT
表示文件不存在。
- 参数:通常接受一个文件路径(可以是绝对路径或者相对路径)作为参数,用于指定要获取信息的文件。例如,在
- statfs函数
- 参数:同样需要一个路径作为参数,不过这个路径是用于指定文件系统中的一个位置,通常可以是挂载点路径或者文件系统内的任意有效路径。在
int statfs(const char *path, struct statfs *buf);
中,path
就是这个用途。 - 返回值:成功时返回0,失败时返回 - 1,并设置
errno
来标识错误原因,如EINVAL
(无效参数)等。
- 参数:同样需要一个路径作为参数,不过这个路径是用于指定文件系统中的一个位置,通常可以是挂载点路径或者文件系统内的任意有效路径。在
- stat函数
- 数据结构方面
- stat函数
- 信息存储在
struct stat
结构体中。这个结构体包含了许多成员,如st_mode
(文件类型和权限)、st_size
(文件大小)、st_atime
(文件最后访问时间)、st_mtime
(文件最后修改时间)、st_ctime
(文件状态最后改变时间)等。
- 信息存储在
- statfs函数
- 信息存储在
struct statfs
结构体中。其中有f_bsize
(文件系统块大小)、f_blocks
(文件系统总块数)、f_bfree
(文件系统可用块数)、f_type
(文件系统类型)等成员。这些成员主要围绕文件系统的空间使用情况和基本属性来设计。
- 信息存储在
- stat函数