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

  1. 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;    //最后一次改变时间(属性)
    }
  1. access函数:检测某文件是否具有某种权限
1. 原型
    int access(const char *pathname, int mode);     -->     具有某权限返回0,没有返回-1
2. mode属性
    R_OK
    W_OK
    X_OK
    F_OK
  1. truncate函数:用于拓展文件的大小
1. 函数原型
    int truncate(const char *pathname, off_t length)
2. length参数
    a. 如果length比原文件长度小,则为截断
    b. 如果length比原文件长,则为拓展
  1. 链接函数: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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值