有没有办法在dart控制台应用程序中捕获CTRL+ C?
例如,按CTRL+ C将干净的"关闭"数据包从服务器发送到Web套接字客户端,而不是仅仅粗暴地关闭套接字.
我进行了一番挖掘,我认为目前的答案是否定的。
您可以捕获标准输入,例如:
import 'dart:io';
void main() {
stdin.onData = () => print(stdin.read());
}
Run Code Online (Sandbox Code Playgroud)
但这不会响应CTRL+ C。
在其他地方,process.dart(库的一部分dart:io)定义了各种信号,例如 SIGQUIT 和回调onExit(),但这用于控制子进程而不是主机进程。