LINUX.ORG.RU
ФорумAdmin

отловить сигнал SIGWINCH и одновременно нажатие клавиши

 ,


0

2

Отлавливаю сигналы SIGWINCH и SIGINT таким образом:

trap 'fynk1 ; exit 0' SIGINT
trap 'fynk2' SIGWINCH
Где функция fynk1 возвращает старые настройки терминала, fynk2 очищает экран и делает новый вывод согласно новым размерам терминала.
Эти строки прописываю в начале скрипта, далее идёт некоторый код выполнения скрипта заходя в бесконечный цикл в котором командой read жду нажатие клавиши.
Если в бесконечном цикле вместо read вписать нулевую задержку sleep 0 то после изменения размера терминала, вывод сразу подстраивается под новые размеры, а так же и при нажатии на ctrl+c происходит выход с возвратом старых настроек терминала.
Но при read, при изменении размеров терминала, вывод подстраивается под новые размеры только после нажатия клавиши, это понятно. Не понятно почему после нажатия ctrl+c происходит возврат старых настроек. Получается один сигнал отрабатывает сразу, а другой нет. Можно как то сделать что бы обработка сигнала SIGWINC то же происходила сразу и при этом было ожидание нажатия клавиши?

★★

а если строки с trap местами поменять?

teod0r ★★★★★ ()
Ответ на: комментарий от teod0r

а если строки с trap местами поменять?

не помогло.

v4567 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.