标准IO
stdin,stdout,stderr,分别是标准输入,标准输出,标准错误。windows和*nix下都有的。
默认情况下,标准输入相当于从键盘输入,标准输出和标准错误相当于向屏幕输出。
C语言中,这三个是FILE*类型(文件指针),例如你用printf,那么内容直接输出到标准输出,等价于fprintf(stdout,...);你用scanf,直接从标准输入读取,等价于fscanf(stdin,...)。
它们有什么用呢?对windows来说,好像只能用来写实验性的小程序。
实际上,*nix中,它们是用户界面的重要组成部分,另外,还可以用来做重定向。
IO重定向
重定向的基本用法,在*nix的shell中如下使用:
这里echo命令用来原样输出,>号把标准输出重定向到文件,随后用cat命令显示那个文件的内容。
再看一个重定向标准输入的例子: