2013-01-17 15 views
5

क्या CTRL + सी डार्ट कंसोल एप्लिकेशन में पकड़ने का कोई तरीका है?डार्ट कंसोल एप्लिकेशन में Ctrl + c

उदाहरण के लिए, प्रेस CTRL + सी स्वच्छ "समापन" पैकेट वेब सॉकेट ग्राहकों को सर्वर से बजाय सिर्फ बेरहमी से सॉकेट को बंद करने के लिए भेजने के लिए।

+0

संभव डुप्लिकेट [डार्ट में वर्तमान के लिए SIGINT को पकड़ने के लिए कैसे?] (Http://stackoverflow.com/questions/18448306/how-to-catch-sigint-for-the- वर्तमान-इन-डार्ट) –

उत्तर

2

मेरे पास खुदाई हुई है, और मैं सोचता हूं कि उत्तर, इस समय नहीं है।

आप stdin पर कब्जा कर सकते हैं, उदाहरण के लिए:

import 'dart:io'; 

void main() { 
    stdin.onData =() => print(stdin.read()); 
} 

लेकिन इस CTRL + सी का जवाब नहीं है।

कहीं और, process.dart (dart:io पुस्तकालय का हिस्सा) इस तरह के SIGQUIT के रूप में विभिन्न संकेतों को परिभाषित करता है, और एक onExit() कॉलबैक, लेकिन यह मेजबान प्रक्रिया बच्चे प्रक्रियाओं के बजाय नियंत्रित करने के लिए प्रयोग किया जाता है।

+0

मैं काफी निष्कर्ष तक पहुंच गया हूं। उम्मीद कर रहा था कि मेजबान प्रक्रिया में मैं एक्सिट पर परिभाषित कर सकता हूं, लेकिन ऐसा प्रतीत नहीं होता है। – samiy

+0

[http://dartbug.com] (http://dartbug.com) पर एक फीचर अनुरोध बढ़ाने के लायक हो सकता है। –

+0

क्या कोई ऐसा करता है? – paulecoyote

2

यह अब मैं 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(); 
} 

उम्मीद है कि जल्द ही जारी किया जाएगा पर निम्न परीक्षण कोड पाया उपलब्ध

है।

भी देखें How to catch SIGINT for the current in Dart?

की
संबंधित मुद्दे