stdin stdout stderr
背景
用户想用io function, 需要有一个指向FILE 类型的指针:FILE *
可以用fdopen来获得一个FILE *
io fucntion: fprintf, fgets, fgetc 在stdio库中
stdin stdout stderr是什么
他们是在stdio.h库中声明的FILE *
默认地,他们都指向终端(terminal)
分别对应文件描述符(file descriptor)0(stdin), 1(stdout), 2(stderror)
stdin
read from stdin: 从终端获得输入
stdout stderror区别
write to them: 都是向终端输出
但是
- stdout是行间缓冲的,buffer内存储的信息只有到换行的时候,才会输出到终端,stderr直接输出。
- 重新定向output到某个文件时,stdout会被重定向,stderr还是输出到终端
注意
你不能像操作其他FILE * 一样close这三者,close他们这一操作由C函数库完成