700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言的缓存区

c语言的缓存区

时间:2021-03-02 04:41:32

相关推荐

c语言的缓存区

1,c语言缓存区在哪里呢?

答案是在FILE* 指向的结构体里面,c语言每打开一个文件都会有一个FILE* 和一个对应的file结构体。这里结构体里面就维护了当前文件的缓存区。

2,实验1.

结果:

结果就是顺序输出

此时感觉时正常得是吧。

3,实验2

当我们取下掉\0之后,结果就改变了。

结果:

分析:为什么呢,调用c语言的都打印了俩边呢?答案就是c语言的刷新策略是采用行刷新的,我我们在结尾不加\0时,就不会立即的刷新,那么就会先把数据保存在缓存区,然后再进程退出时刷新,但是也不是刷新俩变得结果啊,为什么呢?答案就只能时fork了。fort之后父子进程的缓存区的数据也是会发生写实拷贝的,所以再进程退出时刷新缓存区,当然会刷新出俩份了啊。但是系统调用时最原生的,c语言时分装了系统调用,然后加了缓存区,所以系统调用还是一份数据。

4,加深理解,自己模拟分装一下c语言的文件库函数。

简单分装FILE结构体:

fopen实现:

刷新缓存区函数

fwrite实现

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。