ダーツコンソールアプリケーションでは、キャッチする方法はありますか?CTRL + 例えばダーツコンソールアプリケーションのCtrl + c
は、プレスCTRL +Cはただ残酷にソケットを閉じるのではなく、サーバからウェブソケットクライアントにきれいな「クロージング」パケットを送信します。
ダーツコンソールアプリケーションでは、キャッチする方法はありますか?CTRL + 例えばダーツコンソールアプリケーションのCtrl + c
は、プレスCTRL +Cはただ残酷にソケットを閉じるのではなく、サーバからウェブソケットクライアントにきれいな「クロージング」パケットを送信します。
私は周りに掘り出し物を持っていました。私はと答えています。答えは、現時点ではnoです。
次の例のように、標準入力キャプチャすることができます:
import 'dart:io';
void main() {
stdin.onData =() => print(stdin.read());
}
が、これはCCTRL +に応答しません。
このほか、process.dart
(dart:io
ライブラリの一部)は、SIGQUITなどの各種信号を、定義し、onExit()
コールバックが、これは、子プロセスではなく、ホストプロセスを制御するために使用されます。
私はほぼ同じ結論に達しました。ホストプロセスでonExitを定義できると思っていましたが、そうではないようです。 – samiy
[http://dartbug.com](http://dartbug.com)で機能リクエストを行う価値があります。 –
誰もそれをしましたか? – paulecoyote
これは今
利用可能である私は、うまくいけば、これはすぐにリリースされる予定Unified Diff: tests/standalone/io/signals_test_script.dart
import "dart:io";
void main(args) {
int usr1Count = int.parse(args[0]);
int usr2Count = int.parse(args[1]);
var sub1;
var sub2;
void check() {
if (usr1Count < 0 || usr2Count < 0) exit(1);
if (usr1Count == 0 && usr2Count == 0) {
sub1.cancel();
sub2.cancel();
}
print("ready");
}
sub1 = ProcessSignal.SIGUSR1.watch().listen((signal) {
if (signal != ProcessSignal.SIGUSR1) exit(1);
usr1Count--;
check();
});
sub2 = ProcessSignal.SIGUSR2.watch().listen((signal) {
if (signal != ProcessSignal.SIGUSR2) exit(1);
usr2Count--;
check();
});
check();
}
で次のテストコードを発見しました。
の
可能重複[ダートでの電流に対してSIGINTをキャッチするには?](http://stackoverflow.com/questions/18448306/how-to-catch-sigint-for-the- current-in-dart) –