首页 > 代码库 > linux的描述符

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的描述符