|
1、文件是当今计算机系统不可或缺的部分。文件用于储存程序、文档、数据、书信、表格、图形、照片、视频和许多其他种类的信息。作为程序员, 必须会编写创建文件和从文件读写数据的程序。本节将介绍相关的内容函数。
2、 那么文件是什么?文件(file)通常是在磁盘或固态硬盘上的一段已命名的存储区。对我们而言,stdio.h就是一个文件的名称,该文件中包含一些有用的信息。然而,对操作系统而言,文件更复杂一些。例如,大型文件会被分开储存,或者包含一些额外的数据,方便操作系统确定文件的种类。然而,这都是操作系统所关心的,程序员关心的是C程序如何处理文件(除非你正在编写操作系统)。C把文件看作是一系列连续的字节,每个字节都能被单独读取。这与UNIX环境中(C的发源地)的文件结构相对应。由于其他环境中可能无法完全对应这个模型,C提供两种文件模式:文本模式和二进制模式。
3、底层I/O(low-level I/O)使用操作系统提供的基本I/O服务。标准高级I/O(standard high-level I/O)使用C库的标准包和 stdio.h头文件定义。因为无法保证所有的操作系统都使用相同的底层I/O模型,C标准只支持标准I/O包。对于fopen和fclose函数参考fread函数在网上搜索一下就可以了,主要掌握的函数fwrite和fread函数。
fwrite()函数的原型如: size_t fwrite(const void * restrict ptr, size_t size, size_t nmemb,FILE * restrict fp);
fwrite()函数把二进制数据写入文件。size_t是根据标准C类型定义的类 型,它是sizeof运算符返回的类型,通常是unsigned int,但是实现可以选择 使用其他类型。指针ptr是待写入数据块的地址。size表示待写入数据块的大小(以字节为单位),nmemb表示待写入数据块的数量。和其他函数一样, fp指定待写入的文件。
size_t fread()函数的原型如: size_t fread(void * restrict ptr, size_t size, size_t nmemb,FILE * restrict fp);
fread()函数接受的参数和fwrite()函数相同。在fread()函数中,ptr是待读 取文件数据在内存中的地址,fp指定待读取的文件。该函数用于读取被 fwrite()写入文件的数据。 |
|