在C语言中,文件的存取方式

Python022

在C语言中,文件的存取方式,第1张

首先,你的理解有点偏差,文件的存取方式不是由开发语言决定的,而是由文件系统决定的,linux是用C语言开发的,其文件系统的存取方式有三种

1. 顺序存取

顺序存取是按照文件的逻辑地址顺序存取。

�0�1 固定长记录的顺序存取是十分简单的。读操作总是读出上一次读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。如果文件是可读可写的。再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写操作时,将一个记录写到文件 末端。允许对这种文件进行前跳或后退N(整数)个记录的操作。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。

�0�1 可变长记录的顺序文件,每个记录的长度信息存放于记录前面一个单元中,它的存取操作分两步进行。读出时,根据读指针值先读出存放记录长度的单元 。然后,得到当前记录长后再把当前记录一起写到指针指向的记录位置,同时,调整写指针值 。

由于顺序文件是顺序存取的,可采用成组和分解操作来加速文件的输入输出。

2. 直接存取(随机存取法)

很多应用场合要求以任意次序直接读写某个记录。例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。直接存取方法便适合于这类应用,它通常用于磁盘文件。

为了实现直接存取,一个文件可以看作由顺序编号的物理块组成的,这些块常常划成等长,作为定位和存取的一个最小单位,如一块为1024字节、4096字节,视系统和应用而定。于是用户可以请求读块22、然后,写块48,再读块9等等。直接存取文件对读或写块的次序没有限制。用户提供给操作系统的是相对块号,它是相对于文件开始位置的一个位移量,而绝对块号则由系统换算得到。

3. 索引存取

第三种类型的存取是基于索引文件的索引存取方法。由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给操作系统记录键后就可查找到所需记录。

通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。信息块的地址都可以通过查找记录键而换算出。实际的系统中,大都采用多级索引,以加速记录查找过程。

在C语言中,文件存取都是以字节作为单位的。

C语言支持很多文件输入输出函数,比如fread/fwrite, fscanf/fprintf, fgets/fputs, fgetc/fgetc等。

不过其根本都是从文件中逐字节进行读取或写入,然后再做相应的判断或操作。

所以,文件存取的最基本单位就是文件存储的最基本单位,字节。

1、新建一个文件夹,并在文件夹中建立一个文档。

2、打开自己的C语言编辑器。

3、新建一个源文件。

4、写好C语言基本的框架。

5、将文件保存到新建的文件夹中。

6、保存的文件名一定要加.c,在点击保存。

7、输入下面的代码。

8、点击文档,输入的内容就出现在了文档中。