关于《Unix环境高级编程》一书ffush函数的疑问
#include <stdio.h>int fflush(FILE * fp);
这是《Unix环境高级编程》上的文字,对这个代码的解释是:
此函数使该流所未写的数据被传送至内核。作为一个特例,如若fp是NULL,则此函数将导致所有输出流被冲洗。
请问:对于上述文字该怎么理解? 所未写的数据被传送至内核,是由内核去完成写操作吗? 回复 2# sunlw78
fp 指向的打开文件(FILE *)往往存在缓冲(buffer),而这些缓冲是存在于用户空间的,要把它们写出到对应的文件(控制台或磁盘文件),要先把这些缓冲中的内容传递到内核(fflush就是做这个的),然后由内核把它们写入对应的文件。 我查了资料说有内核空间和用户空间,内核空间:操作系统和驱动程序运行在内核空间。应用程序在用户空间。那用户空间是怎么表示的啊? 回复 4# sunlw78
这个和体系结构、OS都有关系。一般不需要关心它们具体是如何实现的。
页:
[1]