linux系统函数学习_(4)stat函数
stat()函数
头文件
#include<sys/types.h> #include<sys/stat.h> #include<unistd.h>
功能:获取文件信息,通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
函数原型:int stat(const char *path, struct stat *buf);
返回值: 执行成功则返回0,失败返回-1,错误代码存于errno
错误代码:
ENOENT 参数file_name指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题,上限为16符号连接
EFAULT 参数buf为无效指针,指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name的路径名称太长
参数:
- 文件路径名
- struct stat 类型的结构体
struct stat 结构体详解: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 文件的硬连接数,刚建立的文件值为1 uid_t st_uid; // user ID of owner 所有者用户识别号 get_t st_ged; // group ID of owner 组识别号 dev_t st_rdev