linux的描述符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的描述符相关的知识,希望对你有一定的参考价值。

        linux系统每个对像当做文件来处理。这包括输入和输出的过程。linux用文件描述来标识每个文件对象。文件描述符是一个非负整数,可以唯一地标识会话中打开的文件。每个过程一次最多可以有9个文件描述符。出于特殊目的。bash shell保留了最早的3个文件描述符{0,1,2}分别对应{STDIN,STDOUT,STDERR}表示为标准输入、标准输出、标准错误。我们先来一段代码看看

 1 #!/bin/bash
  2 exec 3>&1                                                创建文件描述符3取stdin的值,也就是说所有重定向3的都

                                                                       将在显示器上显示
  3 exec 1>inputfile                                        创建输入重定向到inputfile中
  4 exec 2>errorfile                                        创建stderror指向的文件
  5 echo "this is a mao shu fu"                      这一句是输入,输出到inputfile文件中                     
  6 echo "look at this example"                     这一句同上
  7 echo "this is error1" >&2                          这一句指定到错误的文件夹中,这里是指errorfile
  8 echo "this is error2" >&2                          这一句同上
  9 exec 1>&3                                                  文件描述3本来指 stdin也就是显示

                                                                          器,1本来指向的文件,这语句也

                                                                          就是说让1重新指向显示器,这样

                                                                          以后的echo就会显示出来,要不

                                                                          然显示的在inputfile文件中                                          
 10 exec 5<&0
 11 exec 0<errorfile
 12 while read line
 13 do
 14         echo "this is errorfile content $line"    这句能输出在显示器上,全靠第9句
 15 done
 16 exec 0<&5
 17 echo "the script end"                                     这句能输出在显示器上,也靠第9句

 

以上是关于linux的描述符的主要内容,如果未能解决你的问题,请参考以下文章

【fd】Linux文件描述符

Linux 文件描述符

Shell自定义输入输出文件描述符

Linux中的文件描述符与打开文件之间的关系

linux的描述符

linux系统中用户文件描述符0表示