需要理解的知识点:数据流、缓冲区、文件类型、文件存取方式
C语言可以将相关定义的数据按照内存的原样写入文件,这对于大规模数据来说比较方便,因为文件的尺寸比单纯的ASCII存储要小很多。
一、文件
一个文件通常就是磁盘上的一段命名的存储区。比如srdio.h就是一个包含一些有用信息的文件的名称。对于操作系统来说,文件就会更复杂一些。例如一个大文件可以存储在一些分散的区段中,或者还会包含一些使操作系统可以确定其文件类型的附加数据。我们程序员要考虑的是问题是如何在C程序中处理文件
C将文件看成是连续的字节序列。其中每一个字节都可以单独的读取。ANSI C提供了文件的两种视图:文本视图和二进制视图。
一、数据流
stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流。什么是数据流呢(stream)?我们知道,一个程序要运行,需要有输入、输出,如果出错,还要能表现出自身的错误。这是就要从某个地方读入数据、将数据输出到某个地方,这就够成了数据流。
因此,一个进程初期所拥有的这么三个数据流,就分别是标准输出、标准输入和标准错误,分别用stdout, stdin, stderr来表示。对于这三个数据流来说,默认是表现在用户终端上的,一般stdout, stderr被定位到屏幕。比如我们在c中使用fprintf:fprintf(stdout,"hello world!n");屏幕上将打印出"hello world!"来。stdin被定位到键盘。当然他们也可以重新定位。
因此,一个进程初期所拥有的这么三个数据流,就分别是标准输出、标准输入和标准错误,分别用stdout, stdin, stderr来表示。对于这三个数据流来说,默认是表现在用户终端上的,一般stdout, stderr被定位到屏幕。比如我们在c中使用fprintf:fprintf(stdout,"hello world!n");屏幕上将打印出"hello world!"来。stdin被定位到键盘。当然他们也可以重新定位。