LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1673|回复: 3

能仔细说说那几个“文件描述符“的意思?

[复制链接]
发表于 2003-5-27 22:30:36 | 显示全部楼层 |阅读模式
如题!
发表于 2003-5-27 23:21:36 | 显示全部楼层
文件描述符是一个整数,他代表一个打开的文件,标准的三个描述符号:stdin(标准输入:一般指键盘,),stdout(标准输出一般指屏幕输出),stderr(错误输出,也是屏幕),他们分别和3个整数0,1,2一一对应,他们通常默认是打开的,代表你的终端显示设备,如果你用了重定向,那么就改变了他们,如:
>,>>,>&,<&,这几个符号都代表重定向,那他们的文件描述符也不是原来的0,1,2.他们的输出/输入/错误就被重定向.就不是键盘/屏幕,....我就知道这些,望指教;)
重定向表:
<    重定向输入
>    重定向输出
>>   添加输出
2>   错误重定向
1>&2 把标准的输出重定向到错误所送出的地方
2>&1 把标准错误重定向到标准输出所送出的地方
例子:一个有文件描述符3,4的范本[KSH]
在命令行下运行,
先建立两个文件,filea和fileb
javalee//home/javalee/lx>echo asjdflslafjlkljl >filea
javalee//home/javalee/lx>echo asjdfljlasjdfjlasldf>fileb

写个循环,read从描述符3读取一行输入,如果成功,那么就从描述符4读取另一行,
javalee//home/javalee/lx>while read -u3 line1 && read -u4 line2
> do
> print "$line1line2"

赋给描述符3的输入是文件filea,付给描述符4的输入是文件filea
> done 3<filea 4<fileb

执行结果
asjdflslafjlkljl:asjdfljlasjdfjlasldf
 楼主| 发表于 2003-5-30 23:04:07 | 显示全部楼层
谢谢!
好像 文件描述符 有十多个?
那些的意思是?
发表于 2003-5-30 23:46:50 | 显示全部楼层
具体多少必须看看linux/unix的手册,但是我们常用的不过3,4个罢啦!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表