- 文件IO:是直接调用内核提供的系统调用函数, 头文件是unistd.h
- 标准IO:是间接调用系统调用函数,头文件是: stdio.h
- 之前学过:输入输入相关的函数,都是和标准的输入(键盘),标准的输出(显示器)
此前文章中,open,close,write与read函数都是使用unistd.h。
- getchar(),putchar() ‐‐‐‐一个字符
- gets(buf),puts(buf) ‐‐‐‐一串字符
- scanf(),printf() ‐‐‐‐ 一个字符,一串字符都可以
与一些普通文件的读写没有关系,也即这些函数不能读写普通文件。 标准IO中的相关函数,不仅可以读写普通文件,也可以向标准的输入或标准的输出中读或写。
缓存的概念
- 我们的程序中的缓存,就是你想从内核读写的缓存(数组)----用户空间的缓存
- 每打开一个文件,内核在内核空间中也会开辟一块缓存,这个叫内核空间的缓存 文件IO中的写即是将用户空间中的缓存写到内核空间的缓存中。 文件IO中的读即是将内核空间的缓存写到用户空间中的缓存中。
- 标准IO的库函数中也有一个缓存,这个缓存称为----库缓存
C库缓存的特点:
- 遇到\n 时,会将库缓存的内容写到内核缓存中,即调用了系统调用函数。
- 库缓存写满时,会调用系统调用函数,将库缓存内容写到内核缓存中。1024