本文主要参考:viewsourcecode.org/snaptoken/kilo/02.enteringRawMode.html
标准IO流介绍
通常情况下每个程序加载后都会有3个流被fopen——stdin
、stdout
、stderr
,它们是标准C中的FILE*
指针。在unix环境对应的文件描述符为0、1、2(宏定义为STDIN_FILENO
、STDOUT_FILENO
、STDERR_FILENO
)。当然,程序退出的时候它们也会被fclose。
不要简单地把stdin视作键盘缓冲区,stdout视作屏幕缓冲区,尽管多数时候确实像这么回事。关键在于unix中的IO重定向,这三个流都可以被重定向到任意的文件或设备中,一切皆文件嘛。
1 | int main(int argc, char* argv[]) |
上述代码中的执行过程看似是先在命令行下输入两个数字,然后打印出两数之和,但只要动点手脚…