Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ ΡΠ°ΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ 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, ΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ <b>gcc program. Ρ -ΠΎ program -lcurses</b>ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° curses Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ncurses, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ncurses, Π²ΠΊΠ»ΡΡΠΈΠ² ΡΠ°ΠΉΠ» ncurses.h Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΉΠ»Π° curses.h ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ <b>gcc -I/usr/include/ncurses program.Ρ -ΠΎ program -lncurses</b>Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠΈΡ
-IΠ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΠ΅Π½Π°ΡΠΈΡ Makefile ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π² ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ Ρ Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡΡΠ½ΡΡ, Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΡΠ½ΠΎ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΌ ncurses, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ; ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π΅Π΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ β ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /usr/share/doc/, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ curses ΠΈΠ»ΠΈ ncurses ΡΠ°ΡΡΠΎ Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ.
Π’Π΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ curses ΠΈ ΠΎΠ±ΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ
ΠΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ curses Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π°Ρ , Π² ΠΎΠΊΠ½Π°Ρ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΎΠΊΠ½Π°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠΊΠ½Π°Ρ . ΠΠΊΡΠ°Π½ β ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΡΠ°Π½ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ ΡΠΊΡΠ°Π½ ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° xterm), Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΡΠ»ΠΈ ΡΠΊΡΠ°Π½ β ΠΎΠΊΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΎΠΊΠ½Π΅, ΡΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π² ΠΎΠΊΠ½Π΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ curses Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
stdscrΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° curses ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π²Π΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°:
stdscrcurscrstdscrstdscrcurscrstdscrstdscrrefreshstdscrcurscrcurses