शून्य वर्ण
शून्य वर्ण (शून्य टर्मिनेटर भी) शून्य मान वाला एक नियंत्रण वर्ण है।[1][2][3][4] यह बॉडॉट कोड और ITA2 कोड, ISO/IEC 646 (या ASCII), C0 और C1 कंट्रोल कोड, [[यूनिवर्सल कोडेड अक्षरों का समूह ]] (या यूनिकोड), और EBCDIC द्वारा परिभाषित सहित कई कैरेक्टर सेट में मौजूद है। यह लगभग सभी मुख्यधारा की प्रोग्रामिंग भाषाओं में उपलब्ध है।[5] इसे अक्सर NUL (या NULL) के रूप में संक्षिप्त किया जाता है, हालांकि कुछ संदर्भों में उस शब्द का उपयोग अशक्त सूचक के लिए किया जाता है)। 8-बिट कोड में, इसे अशक्त बाइट के रूप में जाना जाता है।
इस वर्ण का मूल अर्थ एनओपी (कोड) की तरह था - जब संगणक मुद्रक या कंप्यूटर टर्मिनल पर भेजा जाता है, तो इसका कोई प्रभाव नहीं पड़ता है (कुछ टर्मिनल, हालांकि, इसे गलत तरीके से अंतरिक्ष (विराम चिह्न) के रूप में प्रदर्शित करते हैं)। जब इलेक्ट्रोमैकेनिकल तैलिप्रिंटर का उपयोग कंप्यूटर आउटपुट डिवाइस के रूप में किया जाता था, तो प्रत्येक मुद्रित लाइन के अंत में एक या अधिक अशक्त वर्ण भेजे जाते थे ताकि तंत्र को अगली पंक्ति पर पहली प्रिंटिंग स्थिति में लौटने का समय मिल सके।[citation needed] छिद्रित टेप पर, चरित्र को बिना किसी छेद के दर्शाया जाता है, इसलिए एक नया अनपंच टेप शुरू में शून्य वर्णों से भरा होता है, और अक्सर नए वर्णों को टेप में छिद्र करके रिक्त वर्णों के आरक्षित स्थान पर पाठ डाला जा सकता है अशक्त।
आज प्रोग्रामिंग लैंग्वेज C (प्रोग्रामिंग लैंग्वेज) और इसके डेरिवेटिव और कई डेटा फॉर्मेट में कैरेक्टर का बहुत अधिक महत्व है, जहां यह एक स्ट्रिंग (कंप्यूटर विज्ञान) के अंत को दर्शाने के लिए उपयोग किए जाने वाले आरक्षित कैरेक्टर के रूप में कार्य करता है।[6] अक्सर एक अशक्त-समाप्त स्ट्रिंग कहा जाता है।[7] यह स्ट्रिंग को केवल एक बाइट के ओवरहेड के साथ किसी भी लम्बाई की अनुमति देता है; एक गिनती को संग्रहित करने के विकल्प के लिए या तो 255 की स्ट्रिंग लंबाई सीमा या एक से अधिक बाइट के ओवरहेड की आवश्यकता होती है (शून्य-समाप्त स्ट्रिंग आलेख में वर्णित अन्य फायदे/नुकसान हैं)।
प्रतिनिधित्व
अशक्त चरित्र को अक्सर बचने का क्रम के रूप में दर्शाया जाता है \0
स्रोत कोड में, स्ट्रिंग अक्षर या वर्ण स्थिरांक।[8] कई भाषाओं में (सी में एस्केप सीक्वेंस, जिसने इस संकेतन को पेश किया), यह एक अलग एस्केप सीक्वेंस नहीं है, लेकिन एक अष्टभुजाकार एस्केप सीक्वेंस है जिसमें सिंगल ऑक्टल डिजिट 0 है; एक परिणाम के रूप में, \0
किसी भी अंक के बाद नहीं होना चाहिए 0
द्वारा 7
; अन्यथा इसे एक लंबे ऑक्टल एस्केप सीक्वेंस की शुरुआत के रूप में समझा जाता है।[9] अन्य एस्केप सीक्वेंस जो विभिन्न भाषाओं में उपयोग में पाए जाते हैं वे हैं \000
, \x00
, \z
, या \u0000
. प्रतिशत एन्कोडिंग वाले यूआरएल में एक शून्य वर्ण रखा जा सकता है %00
.
एक अशक्त वर्ण का प्रतिनिधित्व करने की क्षमता का हमेशा यह अर्थ नहीं होता है कि परिणामी स्ट्रिंग की सही व्याख्या की जाएगी, क्योंकि कई प्रोग्राम अशक्त को स्ट्रिंग का अंत मानेंगे। इस प्रकार इसे टाइप करने की क्षमता (अनियंत्रित उपयोगकर्ता इनपुट के मामले में) एक भेद्यता (कंप्यूटिंग) बनाता है जिसे नल बाइट इंजेक्शन के रूप में जाना जाता है और सुरक्षा शोषण का कारण बन सकता है।[10]
कैरेट नोटेशन में अशक्त वर्ण है ^@
. कुछ कीबोर्ड पर, नीचे पकड़ कर एक अशक्त वर्ण दर्ज किया जा सकता है Ctrl और दबाना @ (सिर्फ यूएस लेआउट पर Ctrl+2 अक्सर काम करेगा, इसकी कोई ज़रूरत नहीं है ⇧ Shift @ चिह्न प्राप्त करने के लिए)।
नल के लिए हेक्साडेसिमल संकेतन है 00
. बेस 64 स्ट्रिंग को डीकोड करना AA==
अशक्त चरित्र भी देता है।
प्रलेखन में, अशक्त वर्ण को कभी-कभी एकल-एम (टाइपोग्राफी)-चौड़ाई के प्रतीक के रूप में दर्शाया जाता है जिसमें NUL अक्षर होते हैं। यूनिकोड में इसके लिए एक वर्ण है: U+2400 ␀ SYMBOL FOR NULL.
एनकोडिंग
सभी आधुनिक वर्ण सेटों में, शून्य वर्ण का कोड बिंदु मान शून्य होता है। अधिकांश एनकोडिंग में, इसे शून्य मान वाली एकल कोड इकाई में अनुवादित किया जाता है। उदाहरण के लिए, UTF-8 में यह एक शून्य बाइट है। हालाँकि, UTF-8#Modified UTF-8|Modified UTF-8 में नल वर्ण को दो बाइट्स के रूप में एन्कोड किया गया है: 0xC0, 0x80। यह बाइट को शून्य के मान के साथ अनुमति देता है, जो अब किसी भी वर्ण के लिए उपयोग नहीं किया जाता है, जिसे स्ट्रिंग टर्मिनेटर के रूप में उपयोग किया जाता है।
संदर्भ
- ↑ ASCII format for Network Interchange. IETF. sec. 5.2. doi:10.17487/RFC0020. RFC 20.
NUL (Null): The all-zeros character which may serve to accomplish time fill and media fill.
- ↑ "The set of control characters of the ISO 646" (PDF). Secretariat ISO/TC 97/SC 2. 1975-12-01. p. 4.4. Archived from the original (PDF) on 2014-05-12.
Position: 0/0, Name: Null, Abbreviation: Nul
- ↑ "Unicode Character 'NULL' (U+0000)". Retrieved 2018-10-20.
- ↑ "C0 Controls and Basic Latin" (PDF). Unicode Consortium. 2018. Retrieved 2018-10-20.
- ↑ "A byte with all bits set to 0, called the null character, shall exist in the basic execution character set; it is used to terminate a character string literal." — ANSI/ISO 9899:1990 (the ANSI C standard), section 5.2.1
- ↑ "A string is a contiguous sequence of characters terminated by and including the first null character" — ANSI/ISO 9899:1990 (the ANSI C standard), section 7.1.1
- ↑ Working Draft, Standard for Programming Language C++ (PDF) (ISO 14882 standard working draft), ISO/IEC, 28 February 2011, p. 427, N3242=11-0012, retrieved 27 February 2013,
A null-terminated byte string, or NTBS, is a character sequence whose highest-addressed element with defined content has the value zero (the terminating null character); no other element in the sequence has the value zero.
- ↑ Kernighan and Ritchie, C, p. 38
- ↑ In YAML this combination is a separate escape sequence.
- ↑ Null Byte Injection WASC Threat Classification Null Byte Attack section.
बाहरी संबंध
- Null Byte Injection WASC Threat Classification Null Byte Attack section
- Poison Null Byte Introduction Introduction to Null Byte Attack
- Apple null byte injection QR code vulnerability