Почему иногда требуется сброс консоли после CTRL + C

Просто попробуйте SmartSVN, установка HTTP-сервера только для этого кажется излишней.

http://www.smartsvn.com/

9
11.11.2017, 16:26
1 ответ

Консоли иногда требуетсяreset(1)(или какая-тоstty(1)команда ), потому что состояние псевдо-терминала -не меняется, когда какой-либо процесс (, например. программа, запущенная вашей оболочкой ), завершается.

Прочтите демистифицированный tty .

(Я считаю работу с псевдо--терминалами и псевдотерминалом самой сложной частью Linux)

Is there a strategy how this problem is addressed in the major programming languages?

Хорошо -работающая программа, имеющая дело с терминалом и изменяющая его режим или линейную дисциплину, должна изо всех сил стараться избежать сбоев и выполнять соответствующие вызовы (см. termios (3))для установки терминал в правильном состоянии. Кстати, такие библиотеки, как ncurses или readline , полезны (, но вам нужно правильно вызывать их подпрограммы очистки ).

См. сигнал (7)и сигнал -безопасность (7). Избежать сбоев в вашем коде сложно. Читайте о неопределенном поведении .

Несовершенным обходным решением может быть определение функции оболочки, которая запускает вашу программу, а затем выполняетreset(что иногда может быть неуместным ).

15
27.01.2020, 20:05

Теги

Похожие вопросы