Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 62

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ curses. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ curses ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½ ΠΊΠ°ΠΊ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ простыми "строковыми" ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ графичСскими (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π² графичСской ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ X Window System, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ GTK+/GNOME ΠΈ Qt/KDE, Π’ ОБ Linux Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° svgatib (Super VGA Library, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ), Π½ΠΎ ΠΎΠ½Π° Π½Π΅ являСтся стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ UNIX, поэтому ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ доступна Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses примСняСтся Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… полноэкранных прилоТСниях ΠΊΠ°ΠΊ довольно Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимый способ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ полноэкранных, хотя ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда Π»Π΅Π³Ρ‡Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses, Ρ‡Π΅ΠΌ нСпосрСдствСнно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ, обСспСчивая Π»Π΅Π³ΠΊΠΈΠΉ Π² использовании, Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π²Π²ΠΎΠ΄Π° символов.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· этой Π³Π»Π°Π²Ρ‹ Π½Π΅ всСгда Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° простой консоли Linux Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ. Π‘Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° сочСтаниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses ΠΈ опрСдСлСния консоли Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° получаСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ согласованным ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊ нСсколько странным ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°ΠΌ ΠΏΡ€ΠΈ использовании curses. Но Ссли для отобраТСния Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ X Window System ΠΈ ΠΎΠΊΠ½ΠΎ xterm, всС встанСт Π½Π° свои мСста.

Π’ этой Π³Π»Π°Π²Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

β–‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses:

β–‘ основныС ΠΈΠ΄Π΅ΠΈ curses;

β–‘ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ;

β–‘ использованиС мноТСствСнных ΠΎΠΊΠΎΠ½;

β–‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (keypad mode);

β–‘ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π°.

ΠœΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ Π³Π»Π°Π²Ρƒ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π½Π° языкС Π‘ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков, ΠΏΠΎΠ΄Ρ‹Ρ‚ΠΎΠΆΠΈΠ² всС, Ρ‡Π΅ΠΌΡƒ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ curses

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ благодаря способности ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ курсора ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ обновлСния экрана, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство символов, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² пСрСсылкС Π½Π° тСкстовый Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСйчас количСство символов Π²Ρ‹Π²ΠΎΠ΄Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Π΅ΠΌ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π½Π΅ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ низкоскоростных ΠΌΠΎΠ΄Π΅ΠΌΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses Π²Ρ‹ΠΆΠΈΠ»Π° ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ инструмСнтов программиста.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ curses β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, для Π΅Π΅ примСнСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ макросы ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ систСмной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. БущСствуСт нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ вСрсия появилась Π² систСмС BSD UNIX ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² разновидности UNIX стиля System V ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π±Ρ‹Π»Π° стандартизована Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ X/Open. БистСма Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ncurses ("new curses") β€” свободно Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ΅ΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ System V Release 4.0 curses, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ для Linux. Π­Ρ‚Π° рСализация Ρ…ΠΎΡ€ΠΎΡˆΠΎ пСрСносится Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии UNIX, хотя ΠΈ содСрТит нСсколько нСпСрСносимых Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для MS-DOS ΠΈ Windows. Если Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses, поставляСмая с вашСй вСрсиСй систСмы UNIX, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ копию Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ncurses. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ОБ Linux ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΡƒΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ncurses ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses. Если ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π½Π΅Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ установлСны Π² вашСм дистрибутивС (Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π° curses.h ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses для рСдактирования связСй), для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° основных дистрибутивов ΠΈΡ… всСгда ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π²ΠΈΠ΄Π΅ стандартного ΠΏΠ°ΠΊΠ΅Ρ‚Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ibncurses5-dev.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ стандартС X/Open ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° curses: Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses содСрТит Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½ΡƒΡŽ ΠΊΡƒΡ‡Ρƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ многостолбцовых символов ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ управлСния Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ΠšΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅ описания способов управлСния Ρ†Π²Π΅Ρ‚ΠΎΠΌ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π² основном привязаны ΠΊ функциям Π±Π°Π·ΠΎΠ²ΠΎΠΉ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠŸΡ€ΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… curses, слСдуСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» curses.h ΠΈ Π½Π° этапС рСдактирования связСй саму Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° -lcurses. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… систСмах Linux Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ просто Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ curses, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΠΎΠΉ, Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ncurses.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ установлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses Π² вашСй систСмС, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

ls -l /usr/include/*curses.h

для просмотра Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ

ls -l /usr/lib/lib*curses*

для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Если Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ curses.h ΠΈ ncurses.h β€” прямо связанныС Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ сущСствуСт Ρ„Π°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ncurses, Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· этой Π³Π»Π°Π²Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ gcc program. с -о program -lcurses

Если установка curses Π² вашСй систСмС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ автоматичСски ncurses, Π²Ρ‹ смоТСтС явно Π·Π°Π΄Π°Ρ‚ΡŒ использованиС ncurses, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² Ρ„Π°ΠΉΠ» ncurses.h вмСсто Ρ„Π°ΠΉΠ»Π° curses.h ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ gcc -I/usr/include/ncurses program.с -о program -lncurses

Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ опция -I Π·Π°Π΄Π°Π΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для поиска Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ сцСнария Makefile прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π² установлСнной Ρƒ вас систСмС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ примСняСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses, поэтому Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ссли Π² вашСй систСмС это Π½Π΅ Ρ‚Π°ΠΊ.

Если Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ установлСна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses Π² вашСй систСмС, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ страницам ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ справочного руководства, посвящСнным ncurses, ΠΈΠ»ΠΈ просмотритС Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ; ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ мСсто Π΅Π΅ хранСния β€” ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/share/doc/, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ curses ΠΈΠ»ΠΈ ncurses часто с присоСдинСнным Π² ΠΊΠΎΠ½Ρ†Π΅ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ вСрсии.

ВСрминология Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ прСдставлСния

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ curses Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° экранах, Π² ΠΎΠΊΠ½Π°Ρ… ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΊΠ½Π°Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠΊΠ½Π°Ρ…. Π­ΠΊΡ€Π°Π½ β€” это устройство (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ экран Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ экран эмулятора Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° xterm), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ записываСтС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Он Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ всС доступноС пространство дисплСя этого устройства, Если экран β€” ΠΎΠΊΠ½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π² графичСском ΠΎΠΊΠ½Π΅, Ρ‚ΠΎ ΠΎΠ½ прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ всСх доступных ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ВсСгда сущСствуСт, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ curses с ΠΈΠΌΠ΅Π½Π΅ΠΌ stdscr, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ с физичСским экраном. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ, мСньшим, Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана. Окна ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΊΠΎΠ½, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… всСгда Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ экрана Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°: stdscr ΠΈ curscr. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° stdscr, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ваТная ΠΈΠ· Π΄Π²ΡƒΡ…, обновляСтся, ΠΊΠΎΠ³Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ curses Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… stdscr β€” "стандартный экран". Она дСйствуСт Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ стандартный Π²Ρ‹Π²ΠΎΠ΄ stdout ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ stdio. Π­Ρ‚Π° структура β€” стандартноС ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ curses. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° curscr ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° stdscr, Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ внСшний Π²ΠΈΠ΄ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ экрана. Π’Ρ‹Π²ΠΎΠ΄, записанный Π² структуру stdscr, Π½Π΅ появляСтся Π½Π° экранС Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ refresh, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses сравниваСт содСрТимоС stdscr (ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ экран) со Π²Ρ‚ΠΎΡ€ΠΎΠΉ структурой curscr (ΠΊΠ°ΠΊ выглядит экран Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚). Π—Π°Ρ‚Π΅ΠΌ curses ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ различия ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя структурами для обновлСния экрана.

НСкоторым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ с использованиСм curses Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ структуру stdscr, которая примСняСтся Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… функциях curses ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€. Однако Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ структура stdscr рСализуСтся ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, ΠΈ ΠΊ Π½Π΅ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π£ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с использованиСм curses практичСски Π½Π΅Ρ‚ Π½ΡƒΠΆΠ΄Ρ‹ Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры curscr.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, процСсс Π²Ρ‹Π²ΠΎΠ΄Π° символов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ curses выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся функция Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses для обновлСния логичСского экрана.

2. Π—Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ curses ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ физичСского экрана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ refresh.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ Π΄Π²ΡƒΡ…ΡˆΠ°Π³ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎΠΌΠΈΠΌΠΎ большСй лСгкости ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” ΠΎΡ‡Π΅Π½ΡŒ эффСктивный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ обновлСния экрана curses. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π²Π°ΠΆΠ½ΠΎ для экрана консоли, Π½ΠΎ становится сущСствСнным ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ сСтСвоС соСдинСниС.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с использованиСм curses Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ мноТСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° логичСский экран, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, пСрСмСщая курсор ΠΏΠΎ всСму экрану для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° тСкста ΠΈΠ»ΠΈ рисования Π»ΠΈΠ½ΠΈΠΉ ΠΈ Ρ€Π°ΠΌΠΎΠΊ. На ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ этапС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ потрСбуСтся ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вСсь этот Π²Ρ‹Π²ΠΎΠ΄. Когда это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ refresh), Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ формирования физичСского экрана, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ логичСскому. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ Π½ΡƒΠΆΠ½Ρ‹Π΅ характСристики Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ оптимизируя пСрСмСщСния курсора, curses часто обновляСт экран, выводя Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшС символов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со всСми опСрациями записи Π½Π° экран, Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.