Linux笔记(10)-Linux文件操作常用函数

    xiaoxiao2025-04-19  40

    stat函数:获取文件的详细属性信息 1. 文件名 2. 大小 3. 块 --> 所占用块数 4. I/O块 5. 文件类型 6. 设备 7. Inode --> 索引节点Inode中保存的是文件数据的相关信息(文件属性的描述信息) Inode号是唯一的,表示不同文件。Linux内部访问文件是通过Inode号进行,通过Inode号的文件信息找到文件所在位置。 一个文件创建时分配其一个Inode号,二者一一映射。 8. 硬链接 9. 权限 10. Uid --> UserId 11. Gid --> GroupId 12. 最近访问时间 13. 最近更改时间 14. 最近改动时间 15. 创建时间 1. 函数原型 int stat(const char *pathname, struct stat *statbuf); //如果读取参数为软链接,则读取软链接映射的实际文件属性 int fstat(int fd, struct stat *statbuf); //打开文件 int lstat(const char *pathname, struct stat *statbuf); //直接读取当前文件属性,如果参数为软链接,则读取软链接的属性 2. 结构体stat struct stat { dev_t st_dev; //文件的设备编号 ino_t st_ino; //节点 mode_t st_mode; //文件的类型和存取权限 nlink_t st_nlink; //硬链接数目 uid_t st_uid; //用户ID gid_t st_gid; //组ID dev_t st_rdev; //设备类型(若为设备,则显示设备编号) off_t st_size; //文件字节数 blksize_t st_blksize; //块大小(文件I/O缓冲区的大小) blkcnt_t st_blkcnt; //块数 time_t st_atime; //最后一次访问时间 time_t st_mtime; //最后一次修改时间(内容) time_t st_ctime; //最后一次改变时间(属性) } access函数:检测某文件是否具有某种权限 1. 原型 int access(const char *pathname, int mode); --> 具有某权限返回0,没有返回-1 2. mode属性 R_OK W_OK X_OK F_OK truncate函数:用于拓展文件的大小 1. 函数原型 int truncate(const char *pathname, off_t length) 2. length参数 a. 如果length比原文件长度小,则为截断 b. 如果length比原文件长,则为拓展 链接函数:link, symlink, readlink, unlink 1. link函数原型 //创建一个硬链接 int link(const char *oldpath, const char *newpath); 2. symlink函数原型 //为目标创建一个软链接 int symlink(const char *target, const char *linkpath); 3. readlink函数原型 //读取一个软链接的链接对象路径 int readlink(const char *pathname, char *buf, size_t bufsize); //buf中存储软链接指向文件的路径,bufsize是buf的大小 4. unlink函数原型 //删除一个文件的目录项并减少其硬链接数 //该函数操作文件时必须要有写权限和执行权限 //可以用于处理缓存文件 //例如,当打开某文件后,然后unlink该文件,于是在文件关闭后,unlink会删除释放文件占用的空间 int unlink(const char *pathname);
    最新回复(0)