系统级I/O

来源:互联网 发布:算法竞赛入门经典pdf 编辑:程序博客网 时间:2024/04/29 09:14

所有的语言运行的时候都执行I/O的较高级别的工具,标准I/O。高级别i/o比较方便,带有缓冲区,系统i/o不带缓冲区,操作不方便。高级i/o是被称为标准i/o,是对系统i/o的封装。

系统i/o对网络编程很重要,标准i/o不可以用,有缺陷。标准i/o提供的功能不够全面,比如无法得到文件的大小和创建时间。

提供了打开,读写,关闭文件。

共享文件:

内核用三个相关的数据结构表示打开的文件:

1.文件描述表:每个进程都有自己的独立描述符表,它的表项是由进程打开的文件描述符来索引的。每个代开的描述符表项指向文件表的一个表项。

描述符表fd0,fd1......然后依次增大,0,1,2分别是,stdin,stdout,stderr,分别是键盘,显示器。

2.文件表:打开文件的集合是由一张文件表来表示的,所有的进程共享这张表。每个文件表的表项组成包括当前的文件位置,引用计数,以及指向v-node表中对应表现的指针。

3.v-node表。同文件表一样,所有的进程共享这种v-node表,每个表项包含stat结构中的大多数信息,包括st_mode和st_size成员。



这是共享的


子进程继承父进程:




0 0
原创粉丝点击