关键词搜索

源码搜索 ×
×

C 语言编程 — stat 文件操作

发布2023-03-15浏览489次

详情内容

目录

stat 库

stat(status,状态)库,用于获取文件或目录的状态信息,如文件大小、创建时间、修改时间等,以及提供了对系统文件和目录进行操作的接口。

结构体

  • struct stat :描述文件和目录的元数据信息,包括文件类型、文件大小、权限、时间戳等。
struct stat { 
	dev_t       st_dev;         /* ID of device containing file */
	ino_t       st_ino;         /* File serial number */
	mode_t      st_mode;        /* File type and permissions */
	nlink_t     st_nlink;       /* Number of hard links */
	uid_t       st_uid;         /* User ID of the file */
	gid_t       st_gid;         /* Group ID of the file */
	dev_t       st_rdev;        /* Device ID */
	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 */
	time_t      st_atime;       /* time of last access */
	time_t      st_mtime;       /* time of last data modification */
	time_t      st_ctime;       /* time of last status change */
};
    • struct timespec:描述时间戳,包括秒数和纳秒数。

    函数接口

    1. 获取指定路径的文件或目录的元数据信息,并将结果存储到 buf 中。
    int stat(const char *path, struct stat *buf) 
    
    • 1
    1. 获取文件描述符 fd 所关联的文件的元数据信息,并将结果存储到 buf 中。
    int fstat(int fd, struct stat *buf) 
    
    • 1
    1. 获取符号链接文件的元数据信息,并将结果存储到 buf 中。如果 path 是一个符号链接,那么获取的是符号链接指向的文件的元数据信息,而不是符号链接本身的元数据信息。
    int lstat(const char *path, struct stat *buf) 
    
    • 1
    1. 修改指定路径的文件或目录的权限。
    int chmod(const char *path, mode_t mode) 
    
    • 1
    1. 创建指定路径的目录,并设置权限为 mode。
    int mkdir(const char *pathname, mode_t mode) 
    
    • 1
    1. 创建指定路径的文件,文件类型和权限由 mode 指定,设备号由 dev 指定。
    int mknod(const char *pathname, mode_t mode, dev_t dev) 
    
    • 1

    ST mode 常量

    文件类型

    • S_IFMT :用于屏蔽文件类型的位掩码;
    • S_IFSOCK :套接字文件类型;
    • S_IFLNK :符号链接文件类型;
    • S_IFREG :普通文件类型;
    • S_IFBLK :块设备文件类型;
    • S_IFDIR :目录文件类型;
    • S_IFCHR :字符设备文件类型;
    • S_IFIFO :管道文件类型;

    文件权限

    • S_IRUSR :用户可读权限;

    • S_IWUSR :用户可写权限;

    • S_IXUSR :用户可执行权限;

    • S_IRGRP :组可读权限;

    • S_IWGRP :组可写权限;

    • S_IXGRP :组可执行权限;

    • S_IROTH :其他人可读权限;

    • S_IWOTH :其他人可写权限;

    • S_IXOTH :其他人可执行权限;

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载