1

这是我的测试环境:

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函数工作?
4

0 回答 0