• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

fdfs的疑问`

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 22次 | 进入软件测试论坛讨论

领测软件测试网
file descriptor是个什么东西```~
举例说下~~~~~
谢谢~~~~~~~

 iricyan 回复于:2003-11-19 23:42:13
0
1
2

 红头发 回复于:2003-11-20 06:45:54
whut?

012?

 guchengman 回复于:2003-11-20 18:33:04
0是标准输出,
1是标准输入.
2是标准错误,

如: cat </etc/passwd 可以查看该文件,
 其原理是利用输入重定向,
 但其完整写法应该是:
     cat 0 </etc/passwd,0在这被省略掉了.

ls -l>a.txt可以把ls命令保存到一个文件当中,
在这完整写法应该是
ls -l 1>a.txt

当你运行ls -l /errdir 时会有错误提示,
我们可以用标准错误重定向来把错误提示保存到一个文件中或丢弃.
ls -l /errdir 2>/tmp/a.txt
把错误保存在/tmp/a.txt文件中.

ls -l /errdir 2>/dev/null
把错误提示丢弃,也即不显示.

 mmmmn 回复于:2003-11-20 18:44:38
真是开玩笑,文件句柄能是这东西?

 红头发 回复于:2003-11-20 19:18:29
谢谢我消化下~~~~

 guchengman 回复于:2003-11-20 21:48:38
[quote:8544bbfcb5="mmmmn"]真是开玩笑,文件句柄能是这东西?[/quote:8544bbfcb5]

其实我也是有疑问,
但是在书上只是写了
1
2
3
之类的东东,
加上前者所说,
我就因此回复,
还请大侠出来分析一下.

 iricyan 回复于:2003-11-20 22:38:59
ops:

写错了。

 laoxia 回复于:2003-11-21 06:40:17
[quote:af318e44a5="guchengman"]0是标准输出,
1是标准输入.
2是标准错误,

如: cat </etc/passwd 可以查看该文件,
 其原理是利用输入重定向,
 但其完整写法应该是:
     cat 0 </etc/passwd,0在这被省略掉了.

ls -l>a.txt可以把..........[/quote:af318e44a5]This is right.  file descriptor 0, 1, 2 are not all of the descriptors. but they are the most commonly used ones.

 laoxia 回复于:2003-11-21 06:49:50
[b:8ee48ac867]Standard In, Standard Out, and Standard Error[/b:8ee48ac867]

When writing shell scripts, you can control input/output redirection. Input redirection is the ability to force a command to read any necessary input from a file instead of from the keyboard. Output redirection is the ability to send the output from a command into a file or pipe instead of to the screen.

Each process created by a shell script begins with three [color=red:8ee48ac867]file descriptors[/color:8ee48ac867] associated with it, as shown in Figure 16-1.


These [color=red:8ee48ac867]file descriptors[/color:8ee48ac867]—standard input, standard output, and standard error—determine where input to the process comes from, and where the output and error messages are sent.

Standard input (STDIN) is always file descriptor 0. Standard input is the place where the shell looks for its input data. Usually data for standard input comes from the keyboard. You can specify standard input to come from another source using input/output redirection.

Standard output (STDOUT) is always [color=red:8ee48ac867]file descriptor[/color:8ee48ac867] 1. Standard output (default) is the place where the results of the execution of the program are sent. Usually, the results of program execution are displayed on the terminal screen. You can redirect standard output to a file, or suppress it completely by redirecting it to /dev/null.Standard error (STDERR) is always [color=red:8ee48ac867]file descriptor [/color:8ee48ac867]2. Standard error is the place where error messages are sent as they are generated during command processing. Usually, error messages are displayed on the terminal screen. You can redirect standard error to a file, or suppress it completely by redirecting it to /dev/null.

You can use the [color=red:8ee48ac867]file descriptor [/color:8ee48ac867]numbers 0 (standard input), 1 

(standard output), and 2 (standard error) together with the redirection metacharacters to control input and output in the Bourne and Korn shells. Table 16-7 shows the common ways you can redirect file descriptors.

[i:8ee48ac867]Table 16-7 Bourne and Korn Shell Redirection  [/i:8ee48ac867]
--------------------------------------------------------------------------------
 
Description  Command  
[color=red:8ee48ac867]Take STDIN from file  <file, or 0<file  
Redirect STDOUT to file  > file, or 1>file  
Redirect STDERR to file  2> file  
Append STDOUT to end of file  >> file  
Redirect STDERR to STDOUT  2>&1  
Pipe standard output of cmd1 as standard input to cmd2  cmd1 | cmd2  
Use file as both STDIN and STDOUT  <> file  
Close STDIN  <&-  
Close STDOUT  >&-  
Close STDERR  2>&-  [/color:8ee48ac867]

--------------------------------------------------------------------------------
 

When redirecting STDIN and STDOUT in the Bourne and Korn shells, you can omit the file descriptors 0 and 1 from the redirection symbols. You must always use the file descriptor 2 with the redirection symbol.

The 0 and 1 file descriptors are implied, and not used explicitly for the C shell, as shown in Table 16-8. The C shell representation for standard error (2) is an ampersand (&). STDERR can only be redirected when redirecting STDOUT.

[i:8ee48ac867]Table 16-8 C Shell Redirection Metacharacters  [/i:8ee48ac867]
--------------------------------------------------------------------------------
 
[color=red:8ee48ac867]Description  Command  
Redirect STDOUT to file  > file  
Take input from file  < file  
Append STDOUT to end of file  >> file  
Redirect STDOUT and STDERR to file  >& file  
Append STDOUT and STDERR to file  >>& file  [/color:8ee48ac867]

 laoxia 回复于:2003-11-21 07:54:37
除了0,1,2之外,你还可以人为的用exec 创建 file descriptor, 主要在写脚本时
使用

 rainspruce 回复于:2003-11-21 08:52:10
佩服 !!!

But how to use exec? documents?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网