stat()—获取文件状态 stat() 函数是 Unix 系统中一个常用的函数,用于获取文件状态。该函数的头文件是 `<sys/stat.h>` 和 `<unistd.h>`。函数的定义是 `int stat(const char *file_name, struct stat *buf)`。 函数的作用是将参数 `file_name` 所指的文件状态复制到参数 `buf` 所指的结构中。该结构体 `struct stat` 中包含了文件的详细信息,包括: * `dev_t st_dev`: 文件的设备编号 * `ino_t st_ino`: 文件的 i-node * `mode_t st_mode`: 文件的类型和存取权限 * `nlink_t st_nlink`: 连到该文件的硬链接数目 * `uid_t st_uid`: 文件所有者的用户识别码 * `gid_t st_gid`: 文件所有者的组识别码 * `dev_t st_rdev`: 若文件为装置设备文件,则为其设备编号 * `off_t st_size`: 文件大小,以字节计算 * `unsigned long st_blksize`: 文件系统的 I/O 缓冲区大小 * `unsigned long st_blocks`: 占用文件区块的个数,每一区块大小为 512 个字节 * `time_t st_atime`: 文件最近一次被存取或被执行的时间 * `time_t st_mtime`: 文件最后一次被修改的时间 * `time_t st_ctime`: i-node 最近一次被更改的时间 在 `st_mode` 中定义了文件类型的位遮罩,如: * `S_IFMT 0170000`: 文件类型的位遮罩 * `S_IFSOCK 0140000`: socket * `S_IFLNK 0120000`: 符号连接 * `S_IFREG 0100000`: 一般文件 * `S_IFBLK 0060000`: 区块装置 * `S_IFDIR 0040000`: 目录 * `S_IFCHR 0020000`: 字符装置 * `S_IFIFO 0010000`: 先进先出 在 POSIX 中定义了检查这些类型的宏定义,如: * `S_ISLNK (st_mode)`: 判断是否为符号连接 * `S_ISREG (st_mode)`: 是否为一般文件 * `S_ISDIR (st_mode)`: 是否为目录 * `S_ISCHR (st_mode)`: 是否为字符装置文件 * `S_ISBLK (st_mode)`: 是否为先进先出 * `S_ISSOCK (st_mode)`: 是否为 socket 如果一目录具有 sticky 位 (`S_ISVTX`), 则表示在此目录下的文件只能被该文件所有者、此目录所有者或 root 来删除或改名。 stat() 函数的返回值为 0 表示执行成功,否则返回 -1,并将错误代码存于 errno 中。可能的错误代码包括: * `ENOENT`: 参数 `file_name` 指定的文件不存在 * `ENOTDIR`: 路径中的目录存在但却非真正的 stat() 函数是一个非常重要的函数,用于获取文件状态信息,它广泛应用于文件管理和访问控制中。
- 粉丝: 50
- 资源: 256
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- shader学习用例合集
- 美的锁阀门-两轴转盘螺丝机(sw17可编辑+工程图)全套技术资料100%好用.zip
- javax.jms-1.1.jar
- 我来试试中国地图省市区JSON文件
- stylus-mv2-2.1.0-4e0db583-id.zip
- 圣诞树html网页代码
- 密集柜(自动化文件柜)sw17可编辑全套技术资料100%好用.zip
- 西南科技微机原理与接口设计.7z
- 西南科技图像处理实验.7z
- 西南科技数据挖掘.7z
- 西南科技数据分析.7z
- 西南科技数据可视化.7z
- 西南科技数据分析实践.7z
- 婚庆摄影wordpress主题是一款婚庆摄影wordpress企业主题
- 西南科技软硬件综合设计.7z
- 西南科技嵌入式系统基础.7z