发布网友
共2个回答
热心网友
1、文件描述符
1)顺序分配的非负整数
2)内核用以标识一个特定进程正在访问的文件
3)其他资源(socket、pipe)的访问标识
2、标准输入、标准输出和标准出错
stdio stdout stderr
由shell默认打开,分别为 0\1\2
3、不用缓存的I\O
1)通过文件描述符进行访问
2)文件I\O: open read write close lseek
4、标准I\O
1) 通过FILE*进行访问
2)printf fprintf fopen fread fwrite fseek fclose
标准I\O 库由ANSIC标准说明。
标准I\O :
流和FILE对象:
标准I\O库的所有操作都是围绕流(stream)来进行的,在标准I\O中,流用FILE*来描述。
流(stream): 分为文本流和二进制流
文本流: 在处理中数据以字符出现。 "\n" -> CR blabla ....
二进制流:流中处理的是二进制序列。字符用ascii码表示。
文件缓冲:
缓冲文件系统(高级磁盘I\O):
目的:尽量减少文件I/O的调用
分类: 全缓冲、行缓冲(遇到"\n"输出)、不缓冲(stderr)
使用setbuf()和setvbuf()可以更改缓存类型,在任意时刻,可以使用fflush强制刷新一个数据流,使缓存数据刷新到内核。
非缓冲文件系统(低级磁盘I\O) 文件I/O没有缓存
热心网友
标准输入流是键盘吧,没听说是硬盘。