Linux上C语言的自我学习一(文件编程-介绍篇)

来源:互联网 发布:辐射4女主角捏脸数据 编辑:程序博客网 时间:2024/05/06 09:39
文件系统是现代操作系统的组成部分之一。文件系统是指按一定规律组织起来的有序的文件组织结构,是构成系统中所有数据的基础。每种文件系统类型存储数据的基本格式都是不一样的。但是,在Linux下访问文件系统是,系统都把数据整理成一个目录树下的文件,并包括我们熟悉的文件的属主和组ID、保护位以及其他特征。事实上,属主、保护等信息只有那些能存储Linux文件的文件系统类型才能提供。Linux同Unix系统一样,将目录和设备当作特殊文件来处理。这种处理方法使所有与文件相关的系统调用,无论对字符设备的操作还是对块设备的操作,从程序设计员的角度来看完全是一样的,因为其接口非常一致,所以使用起来十分简便。下面是我所学的主要关于文件系统简要地介绍。如有错误还请见谅,毕竟是自己自学的Linux上的C语言编程。Linux的文件系统通常有4部分组成:引导块、超级块、索引节点表(inode table)和数据块。其中:

- 引导块用来存放文件系统的引导程序,用于系统引导或启动操作系统。如果一个文件系统不安放操作系统,它的引导块为空。
- 超级块用来描述本文件系统管理的资源,它包含空闲索引节点和空闲数据块表,具体说明文件系统的资源使用情况。
- 索引节点表用来存储文件的控制信息,每个节点对应一个文件。
- 数据块使磁盘上存放数据的磁盘块,包括目录文件和数据。
下面介绍一下文件类型:
- 普通文件:
普通文件也称正规文件,其特点是不包含文件系统的结构信息。通常所接触到的图形文件、数据文件、文档文件、声音文件等。这种类型的文件按其内部结构又可细分为两个文件类型:文本文件和二进制文件。
- 目录文件:
在文件名与索引节点之间的转换起到桥梁作用,是树形文件结构的关键。它的主要内容只有两项:文件名和文件节点号。
- 链接文件:
连接文件是一种特殊的文件。它实际上是指向一个真实存在的文件的链接。比如用户要在一个目录文件中使用其他目录文件的文件时,并不需要将其复制过来,而只需在此目录中建立一个链接文件指向所要调用的文件。在具体使用时,并不会感觉到它们有什么不同。根据链接对象的不同,链接文件又可细分为硬链接文件和符号链接文件。
- 设备文件:
正是由于它的存在,使得Linux系统可以十分方便地访问外部设备。设备文件使用设备的主设备号和次设备号来指定某外部设备。主设备号用于说明设备类型,次设备号用于说明具体设备。设备文件又可以细分为两种类型:块设备文件和字符设备文件。
块设备文件:是以固定长度的块访问数据的。
字符设备文件:是以指定字符(通常是一个字符)访问数据的。
- 管道文件:
主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时,可以通过管道文件。一个进程将需要传递的数据或信息写入管道的一端,另一进程从管道的另一端取得所需的数据或信息。通常管道是建立在高速缓存中的。采用先进先出的规定处理其中地 数据。可以细分为有名管道和无名管道两种。

0 0
原创粉丝点击