Chinaunix

标题: 文件描述符3 和4是什么意思呢? [打印本页]

作者: cloudxx    时间: 2003-06-09 17:53
标题: 文件描述符3 和4是什么意思呢?
比如在SHELL脚本里的
exec 4> filename
exec 3< filename
作者: bjgirl    时间: 2003-06-09 18:52
标题: 文件描述符3 和4是什么意思呢?
好像是改变重定向用的吧~因为标准的描述符是0,1,2,相对应的标准输入(键盘),标准输出(屏幕),错误输出(屏幕).
exec 4>filenmae就是通过文件描述符4向文件filename写入,
exec 3<filename就是用文件描述符3来读取filename的内容!
如果需要的话,还可以使用更多的描述符.(个人看法)
作者: 红袖添香    时间: 2003-06-09 18:55
标题: 文件描述符3 和4是什么意思呢?
...

man ksh
man bash

search keyword 'descriptor'
作者: cloudxx    时间: 2003-06-09 19:36
标题: 文件描述符3 和4是什么意思呢?
原帖由 "红袖添香" 发表:
...

man ksh
man bash

search keyword 'descriptor'
   
红袖JJ,我照你的做了,可是呢,关键是我的E文水平确实太烂,看不明白
你能不能教教我呀!!!~~~~~~~~~~摆脱
作者: 红袖添香    时间: 2003-06-09 20:20
标题: 文件描述符3 和4是什么意思呢?
原帖由 "cloudxx" 发表:
   
红袖JJ,我照你的做了,可是呢,关键是我的E文水平确实太烂,看不明白
你能不能教教我呀!!!~~~~~~~~~~摆脱
   

  

教E文?   :wink:
作者: bjgirl    时间: 2003-06-09 21:05
标题: 文件描述符3 和4是什么意思呢?
这个链接有介绍和例子说明
http://www.linuxsir.com/bbs/showthread.php?s=37c7cbdaa6f8ed4f370c0280b6510838&threadid=42426&highlight=%C3%E8%CA%F6%B7%FB
作者: cloudxx    时间: 2003-06-09 22:18
标题: 文件描述符3 和4是什么意思呢?
原帖由 "红袖添香" 发表:
   

  

教E文?   :wink:
   


教我E文也可以啦~~~看JJ是否有此心情罗??呵呵
我看了一下楼上兄弟的帖子,明白了一点点一点点,不过还是迷糊哦
exec 3<filename后,就是读一个文件,给文件描述符3吧
然后在下面就可以read LINE <&3 从文件描述符3里面读一行,大致理解了
红袖JJ好厉害哦(吹了你几句,总该露几手吧,不然对不起老百姓对你的吹捧~)
顺便在解释下,下面这两个句子是什么意思呢?多谢JJ指点
exec  3<&-
exec  4<&-
作者: 红袖添香    时间: 2003-06-09 22:49
标题: 文件描述符3 和4是什么意思呢?
...

exec 3<&- 表示关闭文件描述符3,看一下下面的过程,

sleeve@magic:~/tmp$ cat file
AAAAAAAAAAAAAAAAAAAA
1|2|2|2|2|2|2|2|2|2|2|2|2|2
1|3|3|3|3|3|3|3|3|3|3|3|3|3
sleeve@magic:~/tmp$ cat <&3
sleeve@magic:~/tmp$ exec 3< file
sleeve@magic:~/tmp$ cat <&3
AAAAAAAAAAAAAAAAAAAA
1|2|2|2|2|2|2|2|2|2|2|2|2|2
1|3|3|3|3|3|3|3|3|3|3|3|3|3
sleeve@magic:~/tmp$ cat <&3
sleeve@magic:~/tmp$ exec 3<&-
sleeve@magic:~/tmp$ cat <&3
-bash: 3: Bad file descriptor
sleeve@magic:~/tmp$
作者: bjgirl    时间: 2003-06-09 23:52
标题: 文件描述符3 和4是什么意思呢?
exec 3<&-是相对于exec 3<filename来说的,先打开,再关闭.我是这样理解的,望红JJ指教
作者: 红袖添香    时间: 2003-06-10 00:17
标题: 文件描述符3 和4是什么意思呢?
[quote]原帖由 "bjgirl"]exec 3<&-是相对于exec 3<filename来说的,先打开,再关闭.我是这样理解的,望红JJ指教[/quote 发表:
   

exec 3<filename 表示打开文件描述符3,如果不打开它就用 cat <&3 是会报错的
exec 3<&- 关闭它,而关闭以后还调用也会出错

sleeve@magic:~/tmp$ cat <&3  # 未打开
-bash: 3: Bad file descriptor
sleeve@magic:~/tmp$ exec 3< file  # 打开
sleeve@magic:~/tmp$ cat <&3
AAAAAAAAAAAAAAAAAAAA
1|2|2|2|2|2|2|2|2|2|2|2|2|2
1|3|3|3|3|3|3|3|3|3|3|3|3|3
sleeve@magic:~/tmp$ exec 3<&-  # 关闭
sleeve@magic:~/tmp$ cat <&3
-bash: 3: Bad file descriptor
sleeve@magic:~/tmp$
作者: anonimousboy    时间: 2003-06-10 07:48
标题: 文件描述符3 和4是什么意思呢?
原帖由 "bjgirl" 发表:
好像是改变重定向用的吧~因为标准的描述符是0,1,2,相对应的标准输入(键盘),标准输出(屏幕),错误输出(屏幕).
exec 4>filenmae就是通过文件描述符4向文件filename写入,
exec 3<filename就是用文件描述符3来读?.........
   
好象不可以,最多只能到9~~
作者: anonimousboy    时间: 2003-06-10 08:15
标题: 文件描述符3 和4是什么意思呢?
[quote="红袖添香"]   

exec 3<filename 表示打开文件描述符3,如果不打开它就用 cat <&3 是会报错的
exec 3<&- 关闭它,而关闭以后还调用也会出错

俺明白了,文件描述符就象C语言里的文件的指针,PERL里的文件的句柄,要用文件必须先打开,然后才可以读里边的内容.不知道理解的是否正确~~
作者: cloudxx    时间: 2003-06-10 08:23
标题: 文件描述符3 和4是什么意思呢?
多谢红JJ赐教~JJ真是高人啊~佩服
作者: nmgzw    时间: 2003-06-10 08:51
标题: 文件描述符3 和4是什么意思呢?
原帖由 "cloudxx" 发表:
   


教我E文也可以啦~~~看JJ是否有此心情罗??呵呵
我看了一下楼上兄弟的帖子,明白了一点点一点点,不过还是迷糊哦
exec 3<filename后,就是读一个文件,给文件描述符3吧
然后在下面就可以read LINE &l..........
   

:wink: JJ不教gg教你
how are you
布置作业啦!照抄一百遍!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2