linux文件操作篇 (三) 文件状态和操作属性
#include <sys/stat.h> |
|
int fstat(int fildes, struct stat *buf); |
获取文件信息 |
int lstat(const char* restrictpath, struct stat *restrictbuf); |
获取文件信息 |
int stat(const char* restrictpath, struct stat *restrictbuf); |
获取文件信息 |
int fstat(int fildes, struct stat *buf) //用于已经open的文件
/* 二者可用于还未打开的文件,其中,如果是软连接文件, lstat描述的是链接本身,stat则是描述链接所指向的文件 */ int lstat(const char *restrictpath, struct stat *restrictbuf); int stat(const char *restrictpath, struct stat *restrictbuf);
struct stat *buf //这是stat.h中的一个结构体,用于记录文件信息 struct stat{ /* when _DARWIN_FEATURE_64_BIT_INODE is defined */ dev_t st_dev; /* ID of device containing file 文件保存的设备*/ mode_t st_mode; /* Mode of file (see below) 文件权限与文件类型信息*/ nlink_t st_nlink; /* Number of hard links 该文件上硬链接的数量*/ ino_t st_ino; /* File serial number 该文件的inode */ uid_t st_uid; /* User ID of the file 该文件的用户id*/ gid_t st_gid; /* Group ID of the file 该文件的组id*/ dev_t st_rdev; /* Device ID */ struct timespecst_atimespec; /* time of last access 上次被访问的时间戳*/ struct timespecst_mtimespec; /* time of last data modification 上次被修改的时间戳*/ struct timespecst_ctimespec; /* time of last status change */ struct timespecst_birthtimespec; /* time of file creation(birth) */ off_t st_size; /* file size, in bytes */ blkcnt_t st_blocks; /* blocks allocated for file */ blksize_t st_blksize; /* optimal blocksize for I/O */ uint32_t st_flags; /* user defined flags for file */ uint32_t st_gen; /* file generation number */ int32_t st_lspare; /* RESERVED: DO NOT USE! */ int64_t st_qspare[2]; /* RESERVED: DO NOT USE! */ };