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

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

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

$ <b>./menu3 &gt; file</b>

You are not a terminal, OK.

Choice: Please select an action

a β€” add new record

d β€” delete record

q β€” quit

<b>d</b>

Choice: Please select an action

a β€” add new record

d - delete record

q β€” quit

<b>q</b>

$ <b>cat file</b>

You have chosen: d

You have chosen: q

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° A ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс

Иногда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства управлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ, Ρ‡Π΅ΠΌ простыС Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ОБ Linux прСдоставляСт ряд интСрфСйсов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… большС возмоТностСй управлСния Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

ΠžΠ±Π·ΠΎΡ€

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 5.1, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π½Π°Π±ΠΎΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса (General Terminal Interface, GTI), раздСляя ΠΈΡ… Π½Π° примСняСмыС для чтСния ΠΈ для записи. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сохраняСт ΡΡΠ½ΠΎΡΡ‚ΡŒ интСрфСйса Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись), позволяя ΠΏΡ€ΠΈ этом искусно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. НСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‡Π΅Π½ΡŒ понятСн β€” ΠΎΠ½ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с мноТСством Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… физичСских устройств.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image010.jpg

Рис. 5.1 

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ UNIX ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ интСрфСйс устанавливаСт "порядок обслуТивания Π»ΠΈΠ½ΠΈΠΉ", ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ повСдСния Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

К основным функциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, относятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

β–‘ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строки β€” ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ для рСдактирования клавиши <Backspace>;

β–‘ буфСризация β€” считываниС символов сразу ΠΈΠ»ΠΈ послС настраиваСмой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ;

β–‘ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ считывании ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ;

β–‘ CR/LF β€” ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°: Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ символа ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки (\n);

β–‘ скорости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ β€” Ρ€Π΅Π΄ΠΊΠΎ примСняСтся для консоли ПК, эти скорости ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ для ΠΌΠΎΠ΄Π΅ΠΌΠΎΠ² ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² Π½Π° линиях ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.

Аппаратная модСль

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ модСль, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для управлСния.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ схСма (физичСская модСль Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… старых ΡƒΠ·Π»Π°Ρ… UNIX ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π΄Π°Π½Π½ΠΎΠΉ) Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Ρƒ с ОБ UNIX, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ с ΠΌΠΎΠ΄Π΅ΠΌΠΎΠΌ ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΌΠΎΠ΄Π΅ΠΌΠΎΠΌ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ (рис. 5.2). На Π΄Π΅Π»Π΅ это просто Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ установки, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ²ΡˆΠΈΠΉΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠ°Π»Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-услуг "Π½Π° Π·Π°Ρ€Π΅ Ρ‚ΡƒΠΌΠ°Π½Π½ΠΎΠΉ ΡŽΠ½ΠΎΡΡ‚ΠΈ" Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°. Π­Ρ‚Π° модСль ΠΎΡ‚Π΄Π°Π»Π΅Π½Π½ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ "ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β€” сСрвСр", ΠΏΡ€ΠΈ использовании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся Π½Π° большом ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°Ρ… Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² Linux - image011.jpg

Рис. 5.2

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° ПК ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ОБ Linux, эта модСль ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ чСрСсчур слоТной. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ ΠΎΠ±ΠΎΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅ΠΌΡ‹, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ эмуляции Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, minicom для запуска ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСанса Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² систСмС Π½Π° любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ машинС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ этой, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Ρ‹ ΠΌΠΎΠ΄Π΅ΠΌΠΎΠ² ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ связи. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, сСгодня быстрый ΡˆΠΈΡ€ΠΎΠΊΠΎΠΏΠΎΠ»ΠΎΡΠ½Ρ‹ΠΉ доступ вытСснил ΠΈΠ· потрСблСния эту Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ модСль, Π½ΠΎ ΠΎΠ½Π° Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ лишСна Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… достоинств.

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ‚ΠΈΠΏΠ° termios

Π’ΠΈΠΏ

termios
β€” стандартный интСрфСйс, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ стандартом POSIX ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° интСрфСйс
termio
систСмы System V. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° управляСтся значСниями Π² структурС Ρ‚ΠΈΠΏΠ°
termios
ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСбольшой Π½Π°Π±ΠΎΡ€ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. И Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ termios.h.

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

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

-lcurses
Π² ΠΊΠΎΠ½Π΅Ρ† строки ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ компиляции. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ старых систСмах Linux Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses прСдставлСна Π² вСрсии, извСстной ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "new curses". Π’ этих случаях имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ становятся
ncurses
ΠΈ
-lncurses
соотвСтствСнно.

ЗначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ для управлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹, относящиСся ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌ:

β–‘ Π²Π²ΠΎΠ΄;

β–‘ Π²Ρ‹Π²ΠΎΠ΄;

β–‘ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅;

β–‘ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ;

β–‘ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы.

Минимальная структура Ρ‚ΠΈΠΏΠ°

termios
ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (хотя Π² стандартС X/Open Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ):

<b>#include &lt;termios.h&gt;</b>

<b>struct termios {</b>

<b>Β tcflag_t c_iflag;</b>

<b>Β tcflag_t c_oflag;</b>

<b>Β tcflag_t c_cflag;</b>

<b>Β tcflag_t c_lflag;</b>

<b>Β cc_t c_cc[NCCS];</b>

<b>};</b>

ИмСна элСмСнтов структуры ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ пяти Ρ‚ΠΈΠΏΠ°ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ пСрСчня.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру Ρ‚ΠΈΠΏΠ°

termios
для Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹Π·Π²Π°Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
tcgetattr
со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ ΠΈΠ»ΠΈ описаниСм:

<b>#include &lt;termios.h&gt;</b>

<b>int tcgetattr(int fd, struct termios *termios_p);</b>

Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ² записываСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… интСрфСйса Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π² структуру, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

termios_p
. Если впослСдствии эти значСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹, Π²Ρ‹ смоТСтС ΠΏΠ΅Ρ€Π΅Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ интСрфСйс Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
tcsetattr
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

<b>#include &lt;termios.h&gt;</b>