stat.h 文件
用途
定义由子例程的统计信息系列返回的数据结构。
描述
/usr/include/sys/stat.h 文件中的 stat 数据结构返回 stat, fstat, lstat, statx和 fstatx 子例程的信息。
统计 数据结构中包含以下字段:
| 项 | 描述 |
|---|---|
| st_dev | 包含该文件的目录条目的设备。 |
| st_ino | 此文件在其设备上的索引。 通过指定文件所在的设备及其在该设备上的索引来唯一地标识该文件。 |
| st_mode | 文件方式。 可能的文件方式值在 /usr/include/sys/mode.h 文件的描述中给出。 |
| st_nlink | 使用 链接 子例程创建的文件的硬链接 (备用目录条目) 数。 |
| st_access | 未实现字段。 所有位都返回为零。 |
| st_size | 文件中的字节数 (包括任何孔)。 此字段还定义该文件的文件结束标记的位置。 只有子例程 (例如 写 子例程) 才会更新文件结束符标记。 如果该文件由 什马特 子例程映射,并且某个值存储在超过文件结束标记的页中,那么当该文件关闭或强制永久存储时,该标记将更新为包含此页。 |
| st_rdev | 设备的标识。 此字段仅针对块或字符特殊文件定义。 |
| st_atime | 上次访问文件数据的时间。st_atime和st_atime_n一起表示自戳记以来的最后一次文件访问时间 (以秒和纳秒为单位)。 |
| st_atime_n | 上次访问文件数据的时间。st_atime和st_atime_n一起表示自戳记以来的最后一次文件访问时间 (以秒和纳秒为单位)。 |
| st_mtime | 上次修改文件数据的时间。st_mtime和st_mtime_n一起表示自戳记以来的最近一次文件修改时间 (以秒和纳秒为单位)。 |
| st_mtime_n | 上次修改文件数据的时间。st_mtime和st_mtime_n一起表示自戳记以来的最近一次文件修改时间 (以秒和纳秒为单位)。 |
| st_ctime | 最近一次更改文件状态的时间。st_ctime和st_ctime_n一起表示自戳记以来的最后一次文件状态更改 (以秒数和纳秒计)。 |
| st_ctime_n | 最近一次更改文件状态的时间。st_ctime和st_ctime_n一起表示自戳记以来的最后一次文件状态更改 (以秒数和纳秒计)。 |
| st_blksize | 文件的每个块的大小 (以字节为单位)。 |
| st_blocks | 文件实际使用的块数 (以 设备大小 (_B) 常量指定的单位为单位测量)。 |
| st_gen | 此索引节点的生成号。 |
| st_type | 对象的 v-node 的类型。 这是 /usr/include/sys/vnode.h 文件中定义的下列其中一个值:
|
| st_vfs | 虚拟文件系统 (VFS) 标识,用于标识包含该文件的 VFS。 通过将此值与 mntctl 子例程返回的 VFS 编号进行比较,可以识别该文件所在的主机的名称。 |
| st_vfstype | 文件系统类型,如 /usr/include/sys/vmount.h 文件中所定义。 |
| st_flag | 用于指示文件或目录是否为虚拟安装点的标志。 此标志可以具有以下值:
|
| st_uid | 文件所有者标识。 |
| st_gid | 文件组标识。 |
/usr/include/sys/stat.h 文件中的 stat64 数据结构返回 stat64, fstat64和 lstat64 子例程的信息。 stat64 结构包含的字段与 统计 结构相同,但以下字段除外:
| 项 | 描述 |
|---|---|
| st_size | 文件中的字节数。 该st_size字段是 64 位的数量,允许文件大小大于OFF_MAX.st_sizestat64 结构的字段为以下类型off64_t. |
对于远程文件, st_atime,st_mtime和st_ctime字段包含服务器上的时间。
以下项的值:st_atime字段可由以下子例程更改:
以下项的值:st_ctime和st_mtime字段可以由以下子例程设置:
- write , writex , writev 和 writevx
- 打开, openx 和 creat
- 链接
- 辛链接
- 取消链接
- 姆克诺德
- 姆迪尔
- Rmdir
- rename
- 截断, 截断
- 乌特, 乌蒂姆
此外, 施姆特 子例程还可以更改st_mtime字段,并且 Chmod, 菲赫莫德, Chown, 乔恩克斯, 弗琼和 富恩克斯 子例程可更改st_ctime。
因为它们可以创建一个新对象,所以 开, 奥佩克斯, 克里特, 辛链接, 姆克诺德, 姆迪尔和 管道 子例程可以设置st_atime,st_ctime和st_mtime字段。