Β return ch;}ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (kbhit.c), ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
$ <b>./kbhit</b>loopingloopingloopingyou hit hloopingloopingloopingyou hit dloopingyou hit q$ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π’Π΅ΡΠΌΠΈΠ½Π°Π» Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ
init_keyboardMIN=1, TIME=0kbhitMIN=0, TIME=0ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π³ΠΎΡΠΎΠ²ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
ΠΠ‘ Linux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠΌΠΈ. ΠΠΊΡΠ°Π½, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΠΌΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΄ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π½Π° ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΠ‘ Linux ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ 8 Π΄ΠΎ 12 Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Π΅ΠΉ. ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ /dev/ttyN, Π³Π΄Π΅ N β Π½ΠΎΠΌΠ΅Ρ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ Ρ 1.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Linux Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°Π»Π΅Π΅ Π²Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ. Π ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π²Π°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ β ΠΏΠ΅ΡΠ²Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ /dev/tty1.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄
whops$ <b>who</b>neil tty1 Mar 8 18:27$ <b>ps -e</b>Β PID TTYΒ Β Β Β Β TIMEΒ CMD1092 tty1 00:00:00 login1414 tty1 00:00:00 bash1431 tty1 00:00:00 emacsΠΠ· ΡΡΠΎΠ³ΠΎ ΡΠΊΠΎΡΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ neil Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΠ» ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Emacs Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΠ, ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ /dev/tty1.
ΠΠ±ΡΡΠ½ΠΎ ΠΠ‘ Linux Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ
gettyps$ <b>ps -Π°</b>Β PID TTYΒ Β Β Β Β TIMEΒ CMD1092 tty1Β 00:00:00Β login1093 tty2Β 00:00:00Β mingetty1094 tty3 00:00:00 mingetty1095 tty4Β 00:00:00Β mingetty1096 tty5Β 00:00:00Β mingetty1097 tty6 00:00:00 mingettyΠ ΡΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ getty Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ SUSE, mingetty, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ Π½Π° ΠΏΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<Alt>+<FN>, Π³Π΄Π΅ N β Π½ΠΎΠΌΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π²ΡΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π½Π°ΠΆΠΌΠΈΡΠ΅ <Ctrl>+<Alt>+<F2>, ΠΈ <Ctrl>+<Alt>+<F1>, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ. (ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° Π½Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ, ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<FN>.)
ΠΡΠ»ΠΈ Π² Linux Π·Π°ΠΏΡΡΠ΅Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ startx ΠΈΠ»Π½ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠΊΡΠ°Π½ΠΎΠ² xdm, Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ /dev/tty7, ΡΡΠ°ΡΡΡΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° X Window System. ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Ρ Π½Π΅Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ, ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<Alt>+<FN>, Π° Π²Π΅ΡΠ½ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ <Ctrl>+<Alt>+<F7>.
Π ΠΠ‘ Linux ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π°Π½ΡΠ° X. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΡΠΎ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
$ <b>startx -- :1</b>Linux Π·Π°ΠΏΡΡΡΠΈΡ ΡΠ΅ΡΠ²Π΅Ρ X Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° /dev/tty8, ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<Alt>+<F8> ΠΈ <Ctrl>+<Alt>+<F7>.
ΠΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ, ΡΡΠΈΡΡΠ²Π°ΡΡ Ρ Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΈΡΠ°ΡΡ Π½Π° Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
ΠΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ
Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ Linux, Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ. ΠΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π½ΠΈΡ Π½Π΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΠ³ΡΠ°ΡΡΠΈΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Π² ΡΠ°Ρ ΠΌΠ°ΡΡ, Π½Π΅ Π²Π·ΠΈΡΠ°Ρ Π½Π° ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ-ΠΈΠ³ΡΠΎΠΊΠΎΠΌ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Ρ ΠΎΠ΄Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΌΠ°Π½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
ΠΠ΄Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² (Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π°) ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠ΅Π»Π° ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡ Single UNIX Specification (Π΅Π΄ΠΈΠ½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ UNIX) ΠΊΠ°ΠΊ UNIX98 Pseudo-Terminals (ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ° UNIX98) ΠΈΠ»ΠΈ PTY.
Π Π΅Π·ΡΠΌΠ΅Β
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΎ ΡΡΠ΅Ρ Π°ΡΠΏΠ΅ΠΊΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ. Π Π½Π°ΡΠ°Π»Π΅ Π³Π»Π°Π²Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ ΠΎΠ± ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅ termios, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π² ΠΠ‘ Linux Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ½ΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ terminfo ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΌ ΡΡΠΈΠ»Π΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ Π½Π° ΡΠΊΡΠ°Π½, ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ. Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°Ρ .Β
ΠΠ»Π°Π²Π° 6
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΠΊΡΠ°Π½Π°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ curses
Π Π³Π»Π°Π²Π΅ 5 Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ»ΡΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠΌ ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (GTI ΠΈΠ»ΠΈ termios) ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ tparm ΠΈ ΡΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅ΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.