^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)।