/ देव / अशक्त और / देव / शून्य के बीच अंतर


27

जब /dev/nullऔर /dev/zeroइसके लिए आउटपुट को पुनर्निर्देशित करने की कोशिश की जाती है , तो इसे छोड़ दिया जाता है। यह दोनों लगता है /dev/nullऔर /dev/zeroसभी इनपुट को स्वीकार करते हैं और त्यागते हैं। तो, के बीच अंतर क्या है /dev/nullऔर /dev/zero?


6
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero* दूर भागता है *
— joeytwiddle

जवाबों:


51

हां, दोनों सभी इनपुट स्वीकार करते हैं और छोड़ देते हैं, लेकिन उनका आउटपुट समान नहीं है:

  • /dev/nullकोई उत्पादन नहीं करता है ।
  • /dev/zeroNULL (शून्य मान) बाइट्स की एक सतत स्ट्रीम का उत्पादन करता है ।

आप निष्पादित करके अंतर देख सकते हैं cat /dev/nullऔर cat /dev/zero।

  • कोशिश करो cat /dev/null > fileऔर तुम एक खाली मिल जाएगा file।

  • अब प्रयास करें cat /dev/zero > file, जबकि फ़ाइल का आकार देखते हुए ( watch -n 1 du -h file) लगातार वृद्धि हो। ऐसा इसलिए है क्योंकि इससे पढ़ने से (अशक्त) वर्णों /dev/zeroकी एक अंतहीन धारा मिलती है \0।

ddअंतर को अधिक उचित रूप से देखने के लिए उपयोग करें :

$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s

$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s

/dev/zero डमी फाइल या स्वैप बनाने के लिए उपयोग किया जाता है।

यह भी देखें:


इसके अलावा thecodelesscode.com/case/6
— kojiro

2
टिप्पण लायक: mmapपिंग /dev/zeroके साथ MAP_PRIVATE"पोर्टेबल" जिस तरह से एक गुमनाम स्मृति मानचित्रण (जैसे विस्तार के अभाव में प्राप्त करने के लिए है MAP_ANON)।
— nnonneo

6
आकस्मिक पाठक के लिए शायद यह स्पष्ट नहीं है कि /dev/null कोई आउटपुट कैसे उत्पन्न होता है: यह ईओएफ को तुरंत संकेत देता है।
— पीटर -

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