linux c stat.h
时间: 2023-12-21 16:06:21 浏览: 110
`<sys/stat.h>` 是 Linux 系统编程中的一个头文件,它定义了文件状态的结构体和一些与文件状态相关的函数。该头文件中定义的文件状态结构体是 `struct stat`,它包含了文件的类型、文件的权限、文件的大小等信息。在 Linux 系统编程中,使用 `stat()`、`fstat()`、`lstat()` 等函数可以获取一个文件的状态。
下面是 `struct stat` 的定义:
```c
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
```
其中,各个字段的含义如下:
- `st_dev`:设备 ID,表示文件所在的设备。
- `st_ino`:inode 编号,表示文件的 inode 编号。
- `st_mode`:文件类型和访问权限,是一个位掩码。
- `st_nlink`:硬链接数,表示文件的硬链接数目。
- `st_uid`:文件所属用户 ID。
- `st_gid`:文件所属组 ID。
- `st_rdev`:设备 ID,只有当文件是特殊设备文件时才有效。
- `st_size`:文件大小(字节数)。
- `st_blksize`:文件系统 I/O 缓冲区大小。
- `st_blocks`:分配给文件的 512 字节块数。
- `st_atime`:最后访问时间。
- `st_mtime`:最后修改时间。
- `st_ctime`:最后状态改变时间。
阅读全文