मैं ऐसा करने में कामयाब रहा
इको-एन " कमांड "> / देव / tty1
पत्र दिखाई देते हैं, और कर्सर चलता है, लेकिन वे "भूत" हैं - यदि आप हिट करते हैं Enter, तो कुछ भी नहीं होता है (वे स्टडिन में नहीं हैं)।
संपादित करें:
नीचे दिए गए स्क्रीनशॉट के बीच में, आप देखते हैं कि मैं इसका उपयोग क्यों देखता हूं। (लाल कैप्शन के साथ लाइन, पीले रंग के कैप्शन के साथ लाइन के ठीक नीचे।) जैसा कि यह अब है, आप नोट पाठ को वास्तव में "संपादित" नहीं कर रहे हैं; आपको बस एक नया पाठ लिखने के लिए कहा जाता है, जो आपके द्वारा नोट किए गए नोट के पाठ को प्रतिस्थापित कर देगा (वास्तव में नहीं)। इस प्रकार, मुझे लगा कि पुराने पाठ को टटी में चिपकाने से इसका निवारण हो सकता है: यदि उपयोगकर्ता हिट करता है, तो कोई संशोधन नहीं किया जाता है। (यह कार्यक्रम पर्ल / MySQL में है, लेकिन मुझे लगा कि "पर्ल में मैं यह कैसे करूं" की तुलना में सामान्य समाधान के लिए पूछना अधिक दिलचस्प होगा।)
2 संपादित करें:
यहाँ Perl कोड है, जो नीचे C कोड का उपयोग करता है (ठीक उसी तरह काम करता है), साथ ही एक नया स्क्रीनशॉट - उम्मीद है कि यह संदेह से परे चीजों को स्पष्ट करेगा :) फिर, स्क्रीनशॉट के बीच में देखें, जहां संपादन किया गया है नोट पाठ के लिए - इस समय के आसपास, पुराना पाठ है, उदाहरण के लिए यदि आप केवल एक टाइपो को ठीक करना चाहते हैं, तो आपको पूरे नोट पाठ को फिर से लिखना नहीं होगा।
my $edit_note_text = $edit_note_data[2];
print BOLD, RED, " new text: ", RESET;
system("writevt /dev/tty \"$edit_note_text\"");
my $new_text = <$in>;
$new_text = fix_input($new_text);
my $set_text = "UPDATE notes SET note = \"$new_text\" WHERE id = $edit_note_id";
$db->do($set_text);