![]() |
1
4
当用户按下Ctrl-D时自动关闭stdin流不是Perl 6在流的接收端所做的事情,而是Unix终端驱动程序所做的 它的 流的尽头。因此,在所有其他编程语言中都会遇到同样的问题。 我不认为你可以要求终端在关闭stdin流后重新打开它。 但是,您可以指示终端暂时禁用其自动处理控制字符(如Ctrl+D)的默认行为(所谓 Cooked mode “”而不是使用“ 原始模式 在这种情况下,EOT字符将按原样传递给您的程序,然后您的程序可以决定如何解释该字符。
指示终端进入原始模式的一种方法是
termios
API,Perl 6绑定由
Term::termios
单元(使用
|
![]() |
Dai · bcrypt生成不正确的哈希-我的用户输入处理是否正确? 6 年前 |
![]() |
Wolfat · 无法从C中的管道执行读取? 6 年前 |
![]() |
Adonai · 在C中创建get string函数时出现问题 7 年前 |
|
Spring fancy · 为什么linux中不混合标准输入? 7 年前 |
|
Cryptosyche · C-使用fgets直到换行/-1[关闭] 7 年前 |
![]() |
Alexander Mills · 向下传递手柄管道 7 年前 |