概述
对于 C 语言而言,无论是标准输入 stdin,还是标准输出 stdout,还是标准错误输出 stderr,本质上都是一种文件操作,只不过读写的文件变成了控制台(console),或者说 stdin/stdout/stderr 是一种特殊的文件流,这三者出现的地方都可替换为相应的文件操作。
printf(const char *, ...) == fprintf(stdout, const char *, ...)scanf(const char*, ...) == fscanf(stdin, const char *, ...)
控制台是特殊的文件,理论上,凡是针对控制台的读写操作,都是转化为对相应文件流的文件操作,控制台输入 ⇒ stdin,控制台输出 ⇒ stdout,控制台错误输出 ⇒ stderr。
FILE 结构体
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
文件缓冲系统
C 语言对文件的操作使用了缓冲文件系统,所谓缓冲文件系统是指系统自动在内存之中,为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区之后才一起送到磁盘区。读取也是如是。
如果想要即可写入到磁盘,
fclose(fp);
关闭文件,表示文件写入操作已经完成。
如果在 fclose 关闭文件之后,还想继续写入的话,就需再次打开,十分不便,有时我们需要对文件进行多次操作,但我们不希望每次操作都关闭文件,此时我们可利用另一个文件操作,
fflush(fp);
刷新缓冲区,将缓冲区的数据写入磁盘上的文件。
最后
以上就是平淡母鸡为你收集整理的趣学 C 语言(十二)—— 文件操作的全部内容,希望文章能够帮你解决趣学 C 语言(十二)—— 文件操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复