码迷,mamicode.com
首页 > 其他好文 > 详细

VFS dup ,dup2

时间:2017-02-10 01:34:42      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:分区   ges   ext2   访问   存储   system   等等   file   bsp   

Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?Linux内核在各种不同的文件系统格式之上做了一个抽象层,使得文件、目录、读写访问等概念成为抽象层的概念,因此各种文件系统看起来用起来都一样,这个抽象层称为虚拟文件系统(VFS,Virtual Filesystem)。下图介绍了运行时文件系统在内核中的表示: 

技术分享

 

 在linux中提供了dup和dup2两个函数用于复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的File Status Flag和读写位置。请注意区分这两种情况。

技术分享

 

VFS dup ,dup2

标签:分区   ges   ext2   访问   存储   system   等等   file   bsp   

原文地址:http://www.cnblogs.com/13224ACMer/p/6384591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!