目录
1.Linux标准文件描述符
2.缓存的概念
1.Linux标准文件描述符
文件描述符 | 缩写 | 描述 |
0 | STDIO | 标准输入 |
1 | STDOUT | 标准输出 |
2 | STDERR | 标准错误输出 |
- 文件IO:是直接调用内核提供的系统调用函数,头文件时unistd.h
- 标准IO:是间接调用系统调用函数,头文件是:stdio.h
- 之前学过:输入相关的函数,都是和标准的输入(键盘),标准的输出(显示器)
getchar(),putchar() ----一个字符
gets(buf),puts(buf) ----一串字符
scanf(),printf() ----一个字符、一串字符
与一些普通文件的读写没有关系,也即是这些函数不能读写普通文件。
标准IO中的相关函数,不仅可以读写普通文件,也可以向标准的输入或标准的输出中读或写。
2.缓存的概念
- 我们的程序中的缓存,就是你想从内核读写的缓存(数组)----用户空间的缓存
- 每打开一个文件,内核在内核空间中也会开辟一块缓存这个叫内核空间的缓存
- 文件IO中的写即是将用户空间中的缓存写到内核空间的缓存中。
- 文件IO中的读即是将内核空间中的缓存写到用户空间的缓存中。
- 标准IO中的库函数中也有一个缓存,这个缓存称为----库缓存
C缓存的特点:
- 遇到 \n 时,会将库缓存的内容写道内核缓存中,即调用了系统调用函数。
- 库缓存写满时,会调用系统调用函数,将库缓存内容写道内核缓存中。1024
验证库缓存的存在
#include "stdio.h"
int main()
{
char buf[]="hello linux";
printf("%s",buf);
while(1);
return 0;
}