`रीसेट` कमांड में देरी क्यों शामिल है?


17

resetआदेश विलंब, स्क्रीन साफ करने और लौटने के बीच भी शामिल है। यह नवीनतम टर्मिनल प्रकार पर भी है xterm-256color। क्यों?

man resetएक देरी का उल्लेख नहीं करता है, केवल विशेष तारों की छपाई। (यह स्क्रीन को साफ करने का उल्लेख नहीं करता है। मुझे लगता है कि यह टर्मिनल इनिशियलाइज़ेशन स्ट्रिंग के तहत शामिल है)।

मैं निम्नलिखित आउटपुट को नोटिस करता हूं strace -f reset:

nanosleep({tv_sec=1, tv_nsec=0}, 0x7ffe1964f100) = 0
ioctl(2, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0

जवाबों:


24

रियल (हार्डवेयर) टर्मिनलों की जरूरत है। उदाहरण के लिए, कुछ के साथ, उन्हें रीसेट करने का एकमात्र तरीका एक हार्डवेयर-रीसेट करना है।

यह टर्मिनल एमुलेटर के साथ हानिरहित है, और चूंकि अंतर बताने के लिए कोई पारंपरिक तरीका नहीं है (और यह निर्धारित करने के लिए बहुत कठिन है कि कुछ एस्केप अनुक्रम एक हार्डवेयर-रीसेट कर सकता है), resetमान लें कि आपका टर्मिनल वास्तविक है।

समय की देरी tset1979 में 3BSD में वापस आ गई , इस तरह:

    /* output startup string */
    if (!RepOnly && !NoInit)
    {
            bufp = buf;
            if (tgetstr("is", &bufp) != 0)
                    prs(buf);
            bufp = buf;
            if (tgetstr("if", &bufp) != 0)
                    cat(buf);
            sleep(1);       /* let terminal settle down */
    }

यह नर्सों में कुछ हद तक विकसित हुआ है, लेकिन एक ही दिशानिर्देश का उपयोग करते हुए:

        if (!noinit) {
            if (send_init_strings(my_fd, &oldmode)) {
                (void) putc('\r', stderr);
                (void) fflush(stderr);
                (void) napms(1000);         /* Settle the terminal. */
            }
        }

आगे की पढाई:


1
OpenBSD कोड में, 1000 एमएस (बुला के माध्यम से इंतजार napms(1000)) टिप्पणी के साथ है/* Settle the terminal. */
Kusalananda

2
OpenBSD ncurses का उपयोग करता है।
थॉमस डिके

1
जब हम यहां हैं तो आप बता सकते हैं कि यदि संभव हो तो देरी को कैसे दूर किया जाए?
user541686

7
@ मेहरदाद आप कोशिश कर सकते हैं tput reset। यह देरी का उपयोग करने के लिए प्रतीत नहीं होता है।
रॉस रिज

3
@ मेहरदाद stty saneबिना किसी देरी के पहली शर्त तय करते हुए दिखाई देते हैं।
sourcejedi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.