perl 5.14.2中的SIGINT处理程序中的Perl的getc问题

时间:2012-03-09 07:42:33

标签: perl sigint getc

这是我的测试环境:

root@redhat89195 bin]# ./perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-thread-multi
.....

代码段:

$SIG{INT}=sub{
         print "1234\n";
         print getc(STDIN);
         print "4444\n";
};

print "5678\n";
print getc(STDIN);

运行程序后,首先打印“5678”,然后等待输入,然后输入“eeee”,然后输入“ctrl-c”,然后处理程序连续打印“1234”和“4444”在处理程序中跳过getc函数,然后它挂起等待输入(我猜它是处理程序外的getc仍在等待输入),我输入“q”,它打印“q”。

所以我的问题是:

  1. 为什么处理程序中的getc函数没有运行?似乎这个问题在其他perl版本中不存在。
  2. 如何解决处理程序中的getc函数问题?

0 个答案:

没有答案