按照惯例,unix类shell会为每个运行的程序默认打开3个文件描述符,即为:标准输入,标准输出和标准错误。
1、系统接口应用
在系统接口中,3个文件描述符被定义为常量,位于头文件<unistd.h>中。
说明如下:
The following symbolic constants shall be defined for file streams:
STDERR_FILENO
File number of stderr; 2.
STDIN_FILENO
File number of stdin; 0.
STDOUT_FILENO
File number of stdout; 1.
在标准I/O中,通过预定义的文件指针stdin、stdout和stderr引用,位于头文件<stdio.h>中。
2、shell应用
在shell应用中:
1>FileName :以覆盖的方式将标准输出定向于FileName 中,其中数字'1'可以省略
1>>FileName :以累加的方式将标准输出定向于FileName 中,其中数字'1'可以省略
2>FileName :以覆盖的方式将标准错误定向于FileName 中
2>>FileName :以累加的方式将标准错误定向于FileName 中
&>FileName :以覆盖的方式将标准输出和标准错误定向于FileName 中
&>>FileName :以累加的方式将标准输出和标准错误定向于FileName 中
cat <FileName > OutFile :以FileName 作为标准输入,以覆盖方式写入到OutFile 中,也就是复制FileName 到OutFile ,可以修改'>'为'>>'实现累加
cat >FileName <<"eof" :以覆盖的方式将标准输出定向于FileName 中,并遇到字符"eof"后停止输入,可以修改'>'为'>>'实现累加