Perl:关于标准输出STDOUT和标准错误STDERR z
来源:互联网 发布:在线ftp源码 编辑:程序博客网 时间:2024/04/28 09:30
Perl中有一些预定义的文件句柄。如标准输入STDIN、标准输出STDOUT、和标准错误STDERR。标准错误STDERR是一个额外的输出路径。怎样理解这句话呢?先来看个例子。
% perl -e 'print "Hello, World!\nabc"; print STDERR "Hi\n";'
输出:
Hello, World!
Hi
abc
而不是:
Hello, World!
abc
Hi
这是因为perl print函数是行缓冲。当碰到\n,print就立即把“标准输出”打印出来。而后面的abc因为没有碰到换行,所以先存在缓冲区,等到缓冲区满了再打印。错误输出是没有缓冲的,所以就立即打印出来了。
% perl -e 'print "Hello, World!\nabc"; print STDERR "Hi\n";' >err.txt
输出到err.txt:
Hello, World!
abc
而err.txt中没有包含Hi(Hi 仍然输出到屏幕),这只不过是把标准输出导入到了文件。如果要导入标准错误你必须这样:
% perl -e 'print "Hello, World!\nabc"; print STDERR "Hi\n";' >&err.txt
>& 只用在unix和Linux下的标准错误重定向。windows下是 2>
一般而言,print 只是等同于 print STDOUT 标准输出。当在输出到文件时,我们就可以通过用标准错误STDERR把错误输出的屏幕上。这样子,perl一边在工作(STDOUT 标准输出到文件时),也能即时看到错误(标准错误STDERR)。(注:以前我一直想这样实现,今天才明白过来。)
如:
% perl -e 'print STDOUT "Hello, World!\n"; print STDERR "Error\n";' >err.txt
#######
总结就是含有STDOUT和没有 都一样,都是标准输出,都可以输出到屏幕上,也可以重定向到文档里
STDERR就是标准错误输出,可以输出到屏幕上,也可以重定向到文档里,只不过是要加&,
1>outfile 2>&1 就是标准输出,错误输出都写入outfile。
感谢YC柳城和香格里拉
- Perl:关于标准输出STDOUT和标准错误STDERR z
- Perl:关于标准输出STDOUT和标准错误STDERR
- 标准输出stdout、标准错误stderr
- stdout和stderr标准输出的区别
- Linux重定向:将标准输出stdout和标准错误stderr重定向到一个文件
- Linux 调用系统命令并截获标准输出(stdout)和错误输出(stderr)
- perl中的STDOUT和STDERR
- 标准输入输出格式 stdin stdout stderr
- stderr标准错误
- 收集STDOUT和STDERR的输出
- Linux下如何重新打开标准输入输出(stdin,stdout,stderr)
- linux 关于标准输入输出错误 STDIN STDOUT STDEER
- C++程序中打印错误信息和标准错误流stderr
- stdout stdin python里面的标准输出和输入
- Bat 标准输出和标准错误
- 标准输入、输出和错误
- unix标准出错输出文件stderr
- Python重定向标准输入、标准输出和标准错误
- GDTR和LDTR如何把虚拟地址转换成线性地址
- 用c++和python写GUI程序(python嵌入方式)
- Activity生命周期的学习以及Logcat的使用
- Activity的跳转与传值
- 单链表的反转
- Perl:关于标准输出STDOUT和标准错误STDERR z
- Android开发指南-框架主题-安全和许可
- Linux C编程连载(2)-鼠标控制
- MZ Header Notes (1)
- Android UI学习 - 用户通知
- Android UI学习 - 对话框 (AlertDialog & ProgressDialog)
- Android+UI学习+-+ListView
- addEvent()和addEventlistner()的区别
- 数组名相当于&array[0]