【发布时间】:2012-09-22 08:26:12
【问题描述】:
我有一个服务器程序只是将输出日志写入 STDOUT。 我还有另一个名为“logfile”的 Perl shell 脚本,它会从 STDIN 获取数据并显示一些输出。
linux$ server | logfile
起初日志文件有输出,但过了一会儿它停止了.. 有没有人遇到过这个问题?
【问题讨论】:
-
你多久刷新一次标准输出?
我有一个服务器程序只是将输出日志写入 STDOUT。 我还有另一个名为“logfile”的 Perl shell 脚本,它会从 STDIN 获取数据并显示一些输出。
linux$ server | logfile
起初日志文件有输出,但过了一会儿它停止了.. 有没有人遇到过这个问题?
【问题讨论】:
server 可能会缓冲其输出,并将其以块的形式提供给管道。 server 是 Perl 脚本吗?添加
$| = 1;
或
use Handle qw( );
STDOUT->autoflush(1);
禁用 STDOUT 的缓冲。 (嗯,第一个将禁用任何句柄 selected 的缓冲,但默认情况下是 STDOUT。)
【讨论】:
server。