1什么是打开文件操作?
打开文件操作就是系统调用open。
因为许多文件操作都涉及给定文件搜索相关目录条目,因此许多系统要求在首次使用文件时,使用系统调用open将指明文件的属性(包括该文件在外存上的物理位置)从外存复制到内存打开文件表的一个表目中,并将该表目的编号返回给用户。
操作系统维护一个包含所有打开文件信息的表(open-file-table)。当用户需要一个文件操作时,可通过该表的一个索引指定文件,因此省略了搜索环节。当文件不再使用时,进程可以关闭它,操作系统从打开文件表中删除这一条目。
2UNIX系统中,输入/输出设备视为特殊文件。
3逻辑结构与物理结构
文件结构包括逻辑结构与物理结构。逻辑结构是用户组织数据的结构形式,数据组织形式来自需求,而物理结构是操作系统组织物理数据块的结构形式。
因此说,逻辑文件的组织形式取决于用户,物理结构的选择取决于文件系统设计者对硬件结构(如磁带介质很难实现链接结构和索引结构)所采取的策略。
一个文件存放在磁带中时,通常采用连续存放方法,文件在硬盘上一般不采用连续存放方法,由此可以看出,不同的文件系统存放的方法是不一样的。
4open与read
大部分操作系统要求在文件使用之前就被显示地打开。操作open会根据文件名搜索目录,并将目录条目复制到打开文件表。若调用open的请求(创建,只读,只写,添加等)得到允许,则进程就可打开文件,而open通常返回一个指向打开文件表的一个条目的指针。