`बिल्ली / देव / उरजनी` अपने टर्मिनल को क्यों तोड़ती है?


जवाबों:


22

जबकि आपके सामान्य, प्रिंट करने योग्य ASCII वर्ण हैं जो टर्मिनल पर आगे और पीछे भेजे जाते हैं, वहाँ भी कई अनपेक्षित वर्ण हैं जो सिस्टम के लिए टर्मिनल के साथ संवाद करने के लिए उपयोग किए जाते हैं। उदाहरण के लिए, यदि कोई प्रोग्राम कैरेक्टर 0x07("ASCII बेल कैरेक्टर") भेजता है, तो आपका टर्मिनल बीप होना चाहिए।

अन्य विशेष दृश्यों का उपयोग पाठ के रंग को बदलने के लिए किया जा सकता है, यह किस दिशा में प्रदर्शित होता है, खिड़की का शीर्षक, खिड़की का आकार, आदि, कई अन्य चीजों के बीच।

जब आप

cat /dev/urandom

यादृच्छिक वर्णों का एक गुच्छा आपके टर्मिनल पर डंप हो जाता है, और टर्मिनल यह नहीं बता सकता है कि यह वास्तविक नियंत्रण कोड नहीं है।

क्योंकि कार्यक्रम प्रभावी रूप से टर्मिनल को यादृच्छिक कमांड भेज रहा है, टर्मिनल एक यादृच्छिक, अक्सर अनुपयोगी अवस्था में समाप्त होता है।


5

रैंडम आउटपुट में से कुछ ANSI एस्केप कोड ( http://en.wikipedia.org/wiki/ANSI_escape_code ) होंगे, जो कर्सर को छिपाने या वैकल्पिक फोंट का चयन करने जैसे मज़ेदार सामान कर सकते हैं। एक और संभावना यूनिकोड अनुक्रम हैं: एक यादृच्छिक बाइटस्ट्रीम मान्य नहीं होगा UTF-8, और शायद सभी यूनिकोड-अवगत टर्मिनलों को उस इनायत से नहीं संभालते हैं।


1

cat /dev/urandomआप के बीच यादृच्छिक बाइट्स की एक धारा दे देंगे , 0और 255उन सभी मूल्यों के मान्य पाठ वर्ण नहीं हैं। क्योंकि टर्मिनल विंडो में अमान्य डेटा फीड था, इसलिए इसे संभालने की कभी उम्मीद नहीं थी कि यह टर्मिनल एप्लिकेशन को "टूटी हुई" स्थिति में ला सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.