C语言文件操作

 

       文件是数据的集合,这个数据集的名称就是文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是存放在外部介质(如磁盘等)上的,在使用时才调入内存中来。从用户的角度看,Linux系统的文件分为普通文件和设备文件两种。

       普通文件是指存放在磁盘或其它外部介质上的一个有序数据集,可以是源文件、目标文件、可执行程序; 也可以是一组待处理的原始数据,或者是一组输出的结果。对于源文件、目标文件、 可执行程序可以称作程序文件,对输入输出数据可称作数据文件。

       设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。在Linux操作系统中,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。通常把显示器定义为标准输出文件,一般情况下在屏幕上显示有关信息就是向标准输出文件输出。如前面经常使用的printf函数就是这类输出。键盘通常被指定标准的输入文件,从键盘上输入就意味着从标准输入文件上输入数据。

       根据文件中数据的组织形式的不同,可以把文件分为文本文件和二进制文件。

文本文件和二进制文件

1、文本文件

       数据以字符组成,把每个字符的 ASCII 码值存入文件中。每个 ASCII 码值占一个字节,每个字节表示一个字符。所以文本文件也称作字符文件或 ASCII 文件。

2、二进制文件

       把数据对应的二进制数值存储到文件中,是字节序列文件。

       例如数据 123,如果按文本文件形式存储,把数据看成三个字符:'1'、'2'、'3' 的集合,文件中依次存储每个字符的 ASCII 码值,格式如下表所示。

字符

'1'

'2'

'3'

ASCII(十进制)

49

50

51

ASCII(二进制)

00110001

00110010

00110011

       如果按照二进制文件形式存储,数据 123 被看成字符、短整型、短整型、长整型,存储方式分别如下:

       字符型一个字节

              01111011

       短整型2个字节

              00000000 01111011

       整型4个字节

              00000000 00000000 00000000 01111011

       长整型8个字节

              00000000 00000000 00000000 00000000 00000000 00000000 00000000 01111011

       文本文件可以用vi和记事本打开,看到的都是ASCII字符,二进制文件用vi可以打开,但是看到的是乱码,没有意义。打开二进制文件之前,必须知道它的格式,一般来说,不同的二进制文件采用相应的软件打开它,例如图片文件用图片查看软件,音频文件用音乐播放器。

       文本文件可以换行,例如我们写的C程序,就是文本文件,有换行。

       二进制文件没有换行的说法,也没有字符串的说法,也没有以空字符结尾的说法,它是数据流。

打开文件和关闭

       C 语言中对任何文件进行操作,都必须先“打开”文件,操作完成后,再“关闭”文件。

1、文件指针

       打开文件的时候,C语言为打开的文件分配一个文件信息区,该信息区中包含文件描述信息、该文件所使用的缓冲区大小及缓冲区位置、该文件当前读写到的位置等基本信息。这些信息保存在一个结构体类型变量中(struct _IO_FILE),这个结构体有一个别名FILE(typedef struct _IO_FILE FILE),FILE结构体和对文件操作的库函数在 stdio.h 头文件中声明的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值