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目录项的缩写。

  • 相关阅读:
    上下文调用(call , apply , bind)
    源码学习第七天(水滴石穿)
    学习源码第六天(加油别放弃)
    学习源码第五天(难得可贵)
    学习源码第四天(昨天只看了一点正则,发现正则真的水很深,但很有魅力)
    简单谈谈$.merge()
    学习源码第三天(短暂的坚持)
    学习源码第二天(渐入佳境)
    jquery源码学习第一天
    经典面试题简单分析
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3304183.html
Copyright © 2011-2022 走看看