"রিসেট" কমান্ড কেন একটি বিলম্ব অন্তর্ভুক্ত করে?


17

resetকমান্ড বিলম্ব, স্ক্রিন ক্লিয়ারিং এবং ফিরে মধ্যে অন্তর্ভুক্ত করা হয়েছে। এটি সর্বশেষতম টার্মিনাল ধরণের xterm-256color। কেন?

man resetকোনও বিলম্বের কথা উল্লেখ করে না, কেবল বিশেষ স্ট্রিংয়ের মুদ্রণটি। (এটি স্ক্রিনটি সাফ করার বিষয়ে উল্লেখ করে না I

আমি অনুসরণ ফলাফল লক্ষ্য করি 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
ওপেনবিএসডি কোডে, 1000 এমএস napms(1000)/* Settle the terminal. */
ওয়েট

2
ওপেনবিএসডি এনক্রেস ব্যবহার করে।
টমাস ডিকি

1
আমরা এখানে থাকাকালীন কীভাবে সম্ভব হলে দেরিটি কীভাবে সরিয়ে ফেলা যায় তা আপনি ব্যাখ্যা করতে পারেন?
user541686

7
আপনি চেষ্টা করে দেখতে পারেন @Mehrdad tput reset। এটি বিলম্ব ব্যবহার করে বলে মনে হচ্ছে না।
রস রিজ

3
@ মেহরদাদ stty saneপ্রথম শর্তটি কোনও দেরি না করে ঠিক করতে উপস্থিত হয়েছে।
সোর্সজেদি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.