linux标准输入输出与重定向

1. 标准输入输出和错误

   linux下使用标准输入文件stdin和标准输出文件stdout,来表示每个命令的输入和输出,还使用一个标准错误输出文件stderr用于输出错误信息。这三个标准输入输出系统缺省与控制终端设备相联系在一起。

因此,在标准情况下,每个命令通常从它的控制终端中获取输入,将输出打印到控制终端的屏幕上。但是也可以重新定义程序的标准输入文件stdin和标准输出文件stdout,将它们重新定向。最基本的用法是将它们重新定义到一个文件上,从一个文件获取输入,输出到另外的文件中等。标准输入文件stdin,通常对应终端的键盘;标准输出文件stdout和标准错误输出文件stderr,这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

2. 文件描述符

   文件描述符是从0开始的整数,指向与进程相关的特定数据流。当进程启动时,通常打开三个文件描述符,分别对应三种标准的I/O:标准输入(文件描述符0),标准输出(文件描述符1),标准错误(文件描述符2)。

1)标准输入(STDIN):它是命令的输入,缺省和终端的键盘关联

2)标准输出(STDOUT):它是命令的输出,缺省和终端的屏幕关联

3)标准错误(STDERR):它是命令的错误信息输出,缺省也和终端的屏幕关联

4)如果进程打开了额外的文件进行输入和输出,则其被设置为下一个可用的文件描述符,从3到9

3. 文件重定向

   在执行命令时,命令的标准输入、输出和错误信息是和问价描述符0、1、2关联的,而文件描述符0、1、2缺省和终端关联。如果希望命令从文件中读取标准输入或则希望命令的标准输出写到文件而不是屏幕,就需要使用文件重定向。

猜你喜欢

转载自blog.csdn.net/weixin_41413441/article/details/81158591