Chinaunix首页 | 论坛 | 博客
  • 博客访问: 250530
  • 博文数量: 65
  • 博客积分: 2599
  • 博客等级: 少校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-04 10:49
文章分类

全部博文(65)

文章存档

2015年(4)

2013年(2)

2012年(4)

2011年(51)

2010年(4)

分类: LINUX

2011-12-15 14:22:52

整个文件IO基本上都是围绕着这面的图展开:



进程有自己的打开文件表,用于记录进程打开的文件都有哪些,概念上就是一个数字:表示文件描述符,一个系统打开文件表表项的指针,一个文件描述符标志,这个标志是进程私有的。

打开文件表:用于表示系统中打开的所有文件,其中至少包含file status flags,这个是和文件相关的,其实受到两个因素影响,一:文件类型:例如socket、FIFO和Pipe 类型,就是不能够lseek;二:和打开文件使用的flags相关,所以这个表才叫  打开  文件表。

V节点:虚拟文件节点,用于抽象具体的文件系统的一种机制。主要作用,通过一套标准的API和数据结构屏蔽
实际文件系统的实现细节。

每一次open()函数调用,都会产生新的打开文件表项,不管是否是同一个进程同一个文件,但是一个文件只对应一个V节点信息。



多个进程打开同一个文件。




dup、dup2等函数的效果。

阅读(713) | 评论(0) | 转发(0) |
0

上一篇:egit

下一篇:C 程序出错处理

给主人留下些什么吧!~~