ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ
ΠΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠ»Π°Π³ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° c_iflag ΡΡΡΡΠΊΡΡΡΡ termios Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²:
β‘ ECHO β Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²;
β‘ ECHOE β Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Backspace, Space, Backspace ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° ERASE (ΡΡΠ΅ΡΠ΅ΡΡ);
β‘ ECHOK β ΡΡΠΈΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° KILL;
β‘ ECHONL β ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ;
β‘ ICANON β Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π²ΠΎΠ΄Π° (ΡΠΌ. ΡΠ΅ΠΊΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° Π΄Π°Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΡΠ½Π΅ΠΌ);
β‘ IEXTEN β Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ;
β‘ ISIG β Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ²;
β‘ NOFLSH β ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ;
β‘ TOSTOP β ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» ΡΠΎΠ½ΠΎΠ²ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ²Π° ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΠ»Π°Π³Π° Π² ΡΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ β ECHO, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈ ICANON, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°Π³ ICANON, Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π² ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΡΡΡΠΎΠΊΠ° Π² Π½Π΅ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ β ΡΡΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ ΠΎΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<C>, Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΠΈΡ . Π ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ c_cc ΡΡΡΡΠΊΡΡΡΡ termios ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ·ΠΈΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° (Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ, Π΄ΡΡΠ³ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ.
ΠΠ°ΡΡΠΈΠ² c_cc ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΎΡΠ΅Π½Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, Π·Π°Π²ΠΈΡΡΡΠΈΠΌΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π΄Π»Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ (Ρ.Π΅. ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ»Π°Π³ ICANON Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ c_lflag ΡΡΡΡΠΊΡΡΡΡ termios) ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π² Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎ ΡΡΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΠ»Ρ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ:
β‘ VEOF β ΡΠΈΠΌΠ²ΠΎΠ» EOF;
β‘ VEOL β Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ EOL;
β‘ VERASE β ΡΠΈΠΌΠ²ΠΎΠ» ERASE;
β‘ VINTR β ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ INTR;
β‘ VKILL β ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ KILL;
β‘ VQUIT β ΡΠΈΠΌΠ²ΠΎΠ» Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ QUIT;
β‘ VSUSP β ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π° SUSP;
β‘ VSTART β ΡΠΈΠΌΠ²ΠΎΠ» Π·Π°ΠΏΡΡΠΊΠ° START;
β‘ VSTOP β ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΡΡΠ°Π½ΠΎΠ²Π° STOP.
ΠΠ»Ρ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ:
β‘ VINTR β ΡΠΈΠΌΠ²ΠΎΠ» INTR;
β‘ VMIN β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ MIN;
β‘ VQUIT β ΡΠΈΠΌΠ²ΠΎΠ» QUIT;
β‘ VSUSP β ΡΠΈΠΌΠ²ΠΎΠ» SUSP;
β‘ VTIME β Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ TIME;
β‘ VSTART β ΡΠΈΠΌΠ²ΠΎΠ» START;
β‘ VSTOP β ΡΠΈΠΌΠ²ΠΎΠ» STOP.
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ Π½Π΅ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Ρ, ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΡ Π² ΡΠ°Π±Π». 5.1.
Π’Π°Π±Π»ΠΈΡΠ° 5.1
Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ INTR ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» SIGINT ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ. ΠΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΠΈΠ³Π½Π°Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 11 QUIT ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» SIGQUIT ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ ERASE ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΡΡΡΠΎΠΊΠ΅ KILL ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΡ ΡΡΡΠΎΠΊΡ EOF ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠΎΠΊΠΈ Π²ΠΎ Π²Π²ΠΎΠ΄, ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° ΠΏΡΡΡΠ°Ρ, Π²ΡΠ·ΠΎΠ² read Π²Π΅ΡΠ½Π΅Ρ Π½ΠΎΠ»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½ Π²ΡΡΡΠ΅ΡΠΈΠ» Π½Π° ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° EOL ΠΠ΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Ρ ΡΡΡΠΎΠΊΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ SUSP ΠΠ°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΈΠ³Π½Π°Π» SIGSUSP ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΊ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° UNIX ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ, ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ STOP ΠΠ΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ "ΠΏΡΠ΅ΡΡΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠΎΠΊΠ°", Ρ. Π΅. ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π». ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ XON/XOFF ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ASCII-ΡΠΈΠΌΠ²ΠΎΠ» XOFF (<Ctrl>+<S>) START ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° STOP, ΡΠ°ΡΡΠΎ ASCII-ΡΠΈΠΌΠ²ΠΎΠ» XON ΠΠ½Π°ΡΠ΅Π½ΠΈΡ TIME ΠΈ MINΠΠ½Π°ΡΠ΅Π½ΠΈΡ TIME ΠΈ MIN ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π΅ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠΌΠ΅ΡΡΠ΅ ΠΎΠ½ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°ΠΉΠ»Π°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ΅ΡΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠ°.
β‘ MIN = 0 ΠΈ TIME = 0. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΠΎΠ² read Π²ΡΠ΅Π³Π΄Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ read Π²Π΅ΡΠ½Π΅Ρ Π½ΠΎΠ»Ρ, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΡΠΈΡΠ°Π½Ρ.
β‘ MIN = 0 ΠΈ TIME > 0. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΠΎΠ² read Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π±ΡΠ΄ΡΡ ΡΡΠΈΡΠ°Π½Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΉΠ΄Π΅Ρ TIME Π΄Π΅ΡΡΡΡΡ Π΄ΠΎΠ»Π΅ΠΉ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠ»ΠΈ Π½Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠ·-Π·Π° ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, read Π²Π΅ΡΠ½Π΅Ρ 0. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π²Π΅ΡΠ½Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
β‘ MIN > 0 ΠΈ TIME = 0. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΠΎΠ² read Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡ MIN ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈ Π·Π°ΡΠ΅ΠΌ Π²Π΅ΡΠ½Π΅Ρ ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ 0.
β‘ MIN > 0 ΠΈ TIME > 0. ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ. ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° read ΠΆΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ»ΡΡΠ΅Π½, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΌΠ΅ΠΆΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ (ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½). ΠΡΠ·ΠΎΠ² read Π·Π°Π²Π΅ΡΡΠΈΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡ MIN ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΠΆΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅Π²ΡΡΠΈΡ TIME Π΄Π΅ΡΡΡΡΡ Π΄ΠΎΠ»Π΅ΠΉ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡΠΈ <Esc> ΠΈ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΠΎΠΉ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ΅ΡΠ΅ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ² Π½Π΅ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ MIN ΠΈ TIME, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π²ΠΎΠ΄Π°.
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ termios, Π½Π°Ρ ΠΎΠ΄ΡΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡ ΡΠΏΠΈΡΠΊΠ°:
$ stty -a
ΠΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Ρ Π°Π²ΡΠΎΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Linux, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ termios Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΡΠ²ΠΎΠ΄:
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O, min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmirk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff
-iuclc -ixany -imaxbe1 iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel n10 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
Π‘ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠΈΠΌΠ²ΠΎΠ» EOF β ΡΡΠΎ <Ctrl>+<D>, ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» Π² Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡ Π΅Π³ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΡΠΎΠΉ ΡΡΡΠ΄Π½ΠΎΡΡΡΡ.
β‘ ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ stty ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΅Π΅:
$ stty sane
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠ°ΡΠ΅ΡΠΊΠΈ Π² ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ (ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π²Π΅ΡΡΠΈ stty sane, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ <Enter> Π½Π°ΠΆΠ°ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ <Ctrl>+<J> (ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ).
β‘ ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ stty -g ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ stty Π² ΡΠΎΡΠΌΡ, Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ. Π ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π±ΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
$ stty -g > save_stty