zoukankan      html  css  js  c++  java
  • 第35天-文件_system_2(2013.09.05)

      1.close(fd) : f->conunt减1,如果结果为0,内核会自动关闭文件结构体。

      2.内核数据结构

      3.f->count : 指向文件结构体的文件描述符个数

      4.已打开的文件在内核中用file结构体表示, 文件描述符表中的指针指向file结构体

      5.file_operations结构体中的release成员用于完成用户程序的close请求,之所以叫release而不叫close是因为它不一定真的关闭文件,而是减少引用计数, 只有引用计数减少到0才关闭文件

      6.每个file结构体都有一个指向dentry结构体的指针,为了减少读盘次数,内核缓存了目录的树状结构,称为 : dentry cache

      7.VFS的核心:file, dentry, inode, super_block

      8.dup 和dup2函数

          dup和dup2都可用来复制一个现存的文件描述符

          原型:int dup(int oldfd);

             int dup2(int oldfd, int newfd);

          头文件 : #include <unistd.h>

          如果调用成功,这两个函数都返回新分配或指定的文件描述符, 如果出错则返回-1

          使用dup2时有三种情况

                    oldfd = newfd  :什么都么干

                    newfd :未被使用, 相当于oldfdhe和newfd指向同一个文件结构体

                    close(newfd);  oldfd 和 newfd 指向同一个文件结构体

          dentry :directory entry目录项的缩写。

  • 相关阅读:
    js 多媒体文件(图片,表格 等) 下载方法
    CentOS7 + asp.net core 3.1 + mysql 8 配置备忘
    项目管理平台参考设计
    golang 使用rate实现redis qps令牌桶限流
    golang执行命令实时输出(协程通过channel更新数据到主进程)
    go-chart go后端生成图表base64
    go-chart go后端生成图表base64
    golang OOM分析
    Golang xorm time自定义解析
    python 多线程
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3304183.html
Copyright © 2011-2022 走看看