^D
चरित्र (भी रूप में जाना जाता \04
या 0x4, संचरण के अंत यूनिकोड में) के लिए डिफ़ॉल्ट मान है eof
कर्नेल में टर्मिनल या छद्म टर्मिनल चालक की विशेष नियंत्रण चरित्र पैरामीटर (अधिक सटीक के tty
सीरियल या छद्म से जुड़ी लाइन अनुशासन tty डिवाइस )। ऐसा इसलिए है c_cc[VEOF]
की termios
संरचना TCSETS के लिए पारित / TCGETS ioctl
टर्मिनल उपकरण को एक मुद्दों चालक के व्यवहार को प्रभावित करने के लिए।
जो सामान्य कमांड भेजता ioctls
है, वह stty
कमांड है।
सभी मापदंडों को पुनः प्राप्त करने के लिए:
$ स्टटी -ए
गति 38400 बॉड; पंक्तियाँ 58; कॉलम 191; पंक्ति = 0;
intr = ^ C; छोड़ना = ^ \ _; मिटा = ^ ;; मार = ^ यू; eof = ^ D ; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^ Q; रोक = ^ एस; संदिग्ध = ^ जेड; rprnt = ^ आर; वासे = ^ डब्ल्यू; lnext = ^ V; flush = ^ O;
मिनट = 1; समय = 0;
-पारेंब-सिरोपड cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
इसिग इकोनोन एक्षेतेन इको इको इको-टेकोनल -नोफ्लेश -एक्सकेस -टॉस्टॉप -टेकॉपर्ट इकोक्टल इकोक
eof
टर्मिनल डिवाइस icanon
मोड में होने पर यह पैरामीटर केवल प्रासंगिक है।
उस मोड में, टर्मिनल ड्राइवर (टर्मिनल एमुलेटर नहीं) एक बहुत ही सरल लाइन संपादक को लागू करता है , जहां आप Backspaceएक चरित्र Ctrl-Uको मिटाने के लिए, पूरी लाइन को मिटाने के लिए टाइप कर सकते हैं ... जब कोई एप्लिकेशन टर्मिनल डिवाइस से पढ़ता है, तो यह तब तक कुछ भी नहीं देखता है। आप Returnउस बिंदु को दबाते हैं , जिसमें read()
अंतिम LF
वर्ण सहित पूर्ण पंक्ति देता है (डिफ़ॉल्ट रूप से, टर्मिनल ड्राइवर CR
आपके टर्मिनल द्वारा भेजे गए का अनुवाद भी करता Returnहै LF
)।
अब, यदि आप बिना दबाव डाले अब तक जो कुछ भी लिखना चाहते हैं, उसे भेजना चाहते हैं, तो आप पात्र में Enterप्रवेश कर सकते हैं eof
। टर्मिनल एमुलेटर से उस चरित्र को प्राप्त करने पर, टर्मिनल ड्राइवर लाइन की वर्तमान सामग्री को प्रस्तुत करता है, ताकि उस read
पर कर रहा एप्लिकेशन इसे प्राप्त कर लेगा (और इसमें एक अनुगामी LF
चरित्र शामिल नहीं होगा )।
अब, यदि वर्तमान लाइन खाली थी, और बशर्ते आवेदन में पहले से दर्ज लाइनों को पूरी तरह से पढ़ा read
होगा , तो 0 वर्ण वापस आ जाएगा।
यह एप्लिकेशन को फ़ाइल के अंत का संकेत देता है (जब आप किसी फ़ाइल से पढ़ते हैं, तो आप तब तक पढ़ते हैं जब तक कि पढ़ने के लिए अधिक कुछ नहीं हो)। इसलिए इसे eof
वर्ण कहा जाता है , क्योंकि इसे भेजने से एप्लिकेशन यह देख सकता है कि कोई और इनपुट उपलब्ध नहीं है।
अब, आधुनिक गोले, उनके संकेत पर टर्मिनल को icanon
मोड में सेट नहीं करते हैं क्योंकि वे अपने स्वयं के लाइन संपादक को लागू करते हैं जो टर्मिनल चालक द्वारा निर्मित एक की तुलना में बहुत अधिक उन्नत है। हालांकि, अपने स्वयं के लाइन संपादक में , उपयोगकर्ताओं को भ्रमित करने से बचने के लिए, वे ^D
चरित्र देते हैं (या टर्मिनल की eof
सेटिंग कुछ के साथ है) एक ही अर्थ (संकेत देने के लिए eof
)।