|
��������
termio - ����� ������������ ���������
��������
��� ����������� ����� ����� ���������� ���� � ��� ��
����� ���������, ��� ����������� �� ������������ ����������.
������ ��� �������� �����, ���������������� ���������, ������� ������� ������������ ����������. �� �������� ���������������� ��������� ����� ���� ��������� ����� �����; ��� ����������� ���������� getty(1M) � ���������� ���������������� ����������� ������, ������� � ����������. ����� ������ �� ������������ ������, �� ��������������� � ������� ���������, ��� �������� ��� ������� ������ ���������� ����������� ���������� ��� ������ ������. ����������� �������� ������ ������ ���� ��� ��������� �������� ������ � ����������, ��� ��� ����������� ����. ����������� �������� ����������� ���������, ����������� ����������� ���������� ������ fork(2). ���������� ����� ������ [� ������� ���������� ������ setpgrp(2)] ������� ����� ��������� ��� �����.
��������� �������� � ��������� ���������� (������������) ������. ������� ����� ������� � ����� ������ �������, ���� ����� ���������� �����. ������ �������� ���������� ������ � ���� �������: ����� ������������� ��������� ����� �������� �������� (��� ��������� �������� �����) ��� ����� ������������ ������� ����������� ���������� ����� �������� ��������, � ������� ��������� �� �� ���������. � ������� ������ ���� ������ ����� 256 ��������. ���� ������ ����� ���������, ����� ������������ � ��� ����������� ������� �������� ��� ������� �����������.
������ ������������ ���� �������������� ���������. ������ �������������� ��������� �������� ������, ����� ����� ��� ����� ������. ��� ��������, ��� ��� ������� ������ ������� ������������������ �� ��� ���, ���� �� ����� ������� ��� ������. ��� ������, ���������� �� ����� ����������� ��������, ����� ������ �� ����� ����� ������, ������ �� ����������� ��� ������ ������ �����: ����� ��������� ����� ���������� �������� (���� ����) � ���������� �� ����� ��������.
�� ����� ����� ������ ����������� ��������� �������� ����� � �����������. �� ��������� ������ # "��������" ��������� ��������� ������ (�� �� ����� ������ ������). ������ @ ���������� ��� �������� ������ �, ���� �����, ������ ������� ������. ��� ���� ����������� ������� ������������ ������ �� ������� �����. ���, ����� ����� ���������, ����������� � ��������� ��������, �������� ���������� ������� �������� � �������� ��������� � ������, �� �� ������ ����� ������ ���� ��������� �� ��������.
��� ����� ��������� ������� ��������� ����������� �������. ���� ����������� ��� ������� � ��������������� ��������������� �������:
��� ���������� ������� INTR, QUIT, SWTCH, ERASE, KILL, EOF � EOL ����� ��������� �������, �������� �� ��������������� [��. stty(1)]. ������� ERASE, KILL � EOF ����� ������������, �� ���� ������ �� ����������� �������, ���� ��������� ����� ���� ������ \.
���� ������� �������, �� ���� ���������, ��� ������� ������ �������� �������� �����������, ���������� ������ ������������ ����� (SIGHUP). ���� �� ������������� ��������� ����� �������, �� ��� ������������� ������� �������������� ��������. ���� ������ ������������ ������������, �� ��� ����������� �������� ������ ���������� ������� ����� �����. ����� ������� ��������, �������� � ��������� � ����������� ����� �����, ����� ��������������� ������� ����������� � ������ ������� �����.
��� ���������� ������ ������ ��� ����� �������� ��� ���������� ��������� ������ �����, ����� ����� ��������, ���������� �����, ��������. �������������� �������� �������� ����������� ����������� �� ����������, �� ���� �����������, � ������� ������. ���� ������� ��������� ������� �������, ��� ��� ����� ���� ��������, ��� ������������, ����� ������ ������� ������ �������� ��������� ������. ��� ���������� ������� �� ���������� ���������� �������� ���������� ��������� ��������������.
� ������� ���������� ������ ioctl(2) ��� ������������� ������� ����� ��������� ��������� ����������� ��������. ��� �������, ��� ���� ������������ ��������� ���������, ��������� �� ���������� ����� <termio.h>:
#define NCC 8 struct termio { unsigned short c_iflag; /* ������ ����� */ unsigned short c_oflag; /* ������ ������ */ unsigned short c_cflag; /* ����������� ������ */ unsigned short c_lflag; /* ��������� ������ */ char c_line; /* ����� ������ � ������ */ unsigned char c_cc[NCC];/* ����������� ������� */ };
������������ ����������� ������� � �������� �������� � ������� c_cc. ���� ��������� ������, ����������� ��������, � ��������������� �������:
0 | VINTR | DEL |
1 | VQUIT | FS |
2 | VERASE | # |
3 | VKILL | @ |
4 | VEOF (VMIN) | EOT |
5 | VEOL (VTIME) | NUL |
6 | VEOL2 | |
7 | VSWTCH | SUB |
���� c_iflag ��������� �������� ��������� ������������� �����:
IGNBRK | 0000001 | ������������ ������ ���������. |
---|---|---|
BRKINT | 0000002 | ��� ������� ��������� ������������ ������ ����������. |
IGNPAR | 0000004 | ������������ ������� � �������� ��������. |
PARMRK | 0000010 | �������� ������ ��������. |
INPCK | 0000020 | ��������� �������� ��������. |
ISTRIP | 0000040 | ����������� ������� ���. |
INLCR | 0000100 | ��������������� ������� ������ � ������� �������. |
IGNCR | 0000200 | ������������ �������� �������. |
ICRNL | 0000400 | ��������������� ������� ������� � ������� ������. |
IUCLC | 0001000 | ��������������� ������� ����� � �����. |
IXON | 0002000 | ��������� �����/������� ���������� �������. |
IXANY | 0004000 | ��������� ������ ������� ������������ �����. |
IXOFF | 0010000 | ��������� �����/������� ���������� ������. |
���� ���������� ��� IGNBRK, �� ������� � �������� ��������� � �������� ������������ (�� ���� �� ��������� � ������� �����). � ��������� ������, ��� ������������� ���� BRKINT, ��������� ����� ������, ����������� ������ ����, (������� ������� ����������) �������� � ��������� ������� ���������� � ����������� �������� �����/������.
���� ���������� ��� PARMRK, �� ������� � ������� ��������� ��� �������� (���� ��� �� ������������) �������� � ���� ������������������ �� ���� ����: 0377, 0, x, ��� x - ��� ������, ���������� ��� ������������� ������. ����� �������� � ���� ������ ��������������� (���� ��� ISTRIP �� ����������) ������ 0377 �������� ��� ���� 0377, 0377. ���� ��� PARMRK �� ����������, �� ��� ������������� ������ (������� �� ������������) �������� ������ NUL (0).
���� ���������� ��� INPCK, �� ��������� �������� �������� ��� �����, � ��������� ������ �������� ��������. ��� ��������� ����������� �������� ������ ��� ������ �������� ��� �����.
���� ���������� ��� ISTRIP, �� � ���������� �������� �������� ������� ������������� ������� ���; � ��������� ������ �������������� ��� 8 ���.
���� ���������� ��� INLCR, �� �������� ������� �������� ������ ������������� � ������� �������. ���� ���������� ��� IGNCR, �� ������� �������� ������� ������������ (�� ��������); � ��������� ������, ���� ���������� ��� ICRNL, ������� �������� ������� ������������� � ������� ������.
���� ���������� ��� IUCLC, �� ������� ����� ������������� � ��������������� ����� �����.
���� ���������� ��� IXON, �� ��������� �����/������� ���������� �������. ���������� ������ STOP ������������ �����, � ������ START ��� ����������. ��� �����/������� ������� ������������, �� ���� �� ��������. ���� ���������� ��� IXANY, �� ����� ��������� ������ ���������� ���������������� �����.
���� ���������� ��� IXOFF, �� ������� ����� ���������� �����/������� �������, ����� ������� ����� ����� �����/ ���������.
� ��������� ��������� ��� ���� ���� c_iflag ����� 0.
���� c_oflag ���������� ��������� ��������� ������:
OPOST | 0000001 | ������������������ �����. |
---|---|---|
OLCUC | 0000002 | ��������������� ����� ����� � �������. |
ONLCR | 0000004 | ��������������� ������� ������ � ���� (������� ������, ������� �������). |
OCRNL | 0000010 | ��������������� ������� ������� � ������� ������. |
ONOCR | 0000020 | �� �������� ������� ������� � ������� �������. |
ONLRET | 0000040 | ������� ������ ��������� ������� �������� �������. |
OFILL | 0000100 | ������������ ��� �������� �������� ��������-������������. |
OFDEL | 0000200 | ��������-������������ �������� DEL (�� ��������� - NUL). |
NLDLY | 0000400 | ������� �������� ��� �������� ������: |
NL0 | 0 | |
NL1 | 0000400 | |
CRDLY | 0003000 | ������� �������� ��� �������� �������: |
CR0 | 0 | |
CR1 | 0001000 | |
CR2 | 0002000 | |
CR3 | 0003000 | |
TABDLY | 0014000 | ������� �������� ��� �������������� ���������: |
TAB0 | 0 | |
TAB1 | 0004000 | |
TAB2 | 0010000 | |
TAB3 | 0014000 ������������� ��������� � �������. | |
BSDLY | 0020000 | ������� �������� ��� �������� �� ���: |
BS0 | 0 | |
BS1 | 0020000 | |
VTDLY | 0040000 | ������� �������� ��� ������������ ���������: |
VT0 | 0 | |
VT1 | 0040000 | |
FFDLY | 0100000 | ������� �������� ��� �������� � ����� ��������: |
FF0 | 0 | |
FF1 | 0100000 |
���� ���������� ��� OPOST, �� ��������� ������� ������������������, ����� ��� ���������� �� �������� ��� ���������. �������� ��������� ������������ ���������� ������ ������ ������.
���� ���������� ��� OLCUC, �� ����� ����� ������������� ��� ������ � �������. ������ ����� ������ ������������ ������ � IUCLC.
���� ���������� ��� ONLCR, �� ������� ������ ������������� � ���� �������� (������� ������, ������� �������). ���� ���������� ��� OCRNL, �� ������� ������� ������������� � ������� ������. ���� ���������� ��� ONOCR, �� � ������� 0 (������ ������� ������) ������� ������� �� ���������. ���� ���������� ��� ONLRET, �� ��������������, ��� ������� ������ ��������� ������� �������� �������; ����� ������� ���������� �������, ������������ ��������, ������������ ��� �������� �������. � ��������� ������ ��������������, ��� ������� ������ ������ ������ ��� �������� � ����� ������: ����� ������� �� ����������. ���� ���������� ��� ������ �������� �������, ����� ������� ���������� �������.
���� �������� ���������� �����, �� ������� ������������ ��������. �������� ��������� ��������� ������������ ��� ���� �����������, ��������� �������� �� �������� ��������� ��������. � ����� ������ 0 �������� ���������� ��������. ���� ���������� ��� OFILL, �� ������ ��������� �������� ����� �������������� �������� ��������-������������. �������� ����� ������� ��� ���������������� ����������, ����� ����� ����������� ��������. ���� ���������� ��� OFDEL, �� ��������-������������ �������� DEL, � ��������� ������ NUL.
������������ �������� ��� ������������ ��������� ��� �������� � ����� �������� ���������� �������� 2 �������.
�������� ��� �������� ������ ����� �������� 0.1 �������. ���� ���������� ��� ONLRET, �� ������ �������� ��� �������� ������ ������������ �������� ��� �������� �������. ���� ���������� ��� OFILL, ����� ������������ ��� �������-�����������.
�������� ���� 1 ��� �������� ������� ������� �� ������� �������, ��� ���� 2 ������ �������� 0.1 �������, ��� ���� 3 - 0.15 �������. ���� ���������� ��� OFILL, �� ��� �������� ���� 1 ���������� ��� �������-�����������, ��� �������� ���� 2 - ������ �������.
��� �������������� ��������� �������� ���� 1 ������� �� ������� �������. ��� ���� 2 ��� ������ ����� 0.1 �������. ��� 3 �������������, ��� ��������� ������ �������������� � �������. ���� ���������� ��� OFILL, �� ��� �������� ������ ���� ���������� ��� �������-�����������.
�������� ��� �������� �� ��� ������ ����� 0.05 �������. ���� ���������� ��� OFILL, �� ����� ������������ ���� ������-�����������.
����������� �������� ������� �� �������� ����� ����� � ������������� �������.
� ��������� ��������� ��� ���� ���� c_oflag ����� 0.
���� c_cflag ��������� ���������� �������������� ����� � ���������:
CBAUD | 0000017 | �������� ��������: | |
---|---|---|---|
B0 | 0 | ������������ �����. | |
B50 | 0000001 | 50 ���. | |
B75 | 0000002 | 75 ���. | |
B110 | 0000003 | 110 ���. | |
B134 | 0000004 | 134 ����. | |
B150 | 0000005 | 150 ���. | |
B200 | 0000006 | 200 ���. | |
B300 | 0000007 | 300 ���. | |
B600 | 0000010 | 600 ���. | |
B1200 | 0000011 | 1200 ���. | |
B1800 | 0000012 | 1800 ���. | |
B2400 | 0000013 | 2400 ���. | |
B4800 | 0000014 | 4800 ���. | |
B9600 | 0000015 | 9600 ���. | |
B19200 | 0000016 | 19200 ���. | |
EXTA | 0000016 | ������� A. | |
B38400 | 0000017 | 38400 ���. | |
EXTB | 0000017 | ������� B. | |
CSIZE | 0000060 | ������ �������: | |
CS5 | 0 | 5 ���. | |
CS6 | 0000020 | 6 ���. | |
CS7 | 0000040 | 7 ���. | |
CS8 | 0000060 | 8 ���. | |
CSTOPB | 0000100 | �������� ��� ����-����, ����� ����. | |
CREAD | 0000200 | ��������� ����� ��������. | |
PARENB | 0000400 | �������������� ��������. | |
PARODD | 0001000 | �������� �� ����������, ����� �� ��������. | |
HUPCL | 0002000 | ������������ ����� ��� ��������� ��������. | |
CLOCAL | 0004000 | ��������� ����� �����, ����� �������������. | |
RCV1EN | 0010000 | ||
XMT1EN | 0020000 | ||
LOBLK | 0040000 | ����������� ����� ���������� shell'�. |
���� CBAUD ���������� �������� �������� ������. ������� �������� ��������, B0, ������������ ��� ����������� ����� � ������������ �����. ��� ������� �������� �� ����� ������������ ������ ���������� ��������� � ��������� ������, ��� ������ ����� � ������� �����. ��� ������ ���� ���������� ������������ �� �������������� �� ��������� ��������.
���� CZISE ������ ������ ������� � ����� ��� ��� ��������, ��� � ��� ������ ������. � ���� ������� �� ����������� ��� ��������, ���� �� ����. ���� ���������� ����� CSTOPB, �� ������������ ��� ����-����, � ��������� ������ ����. ��������, ��� �������� 110 ��� ��������� ��� ����-����.
���� ���������� ����� PARENB, �� ��������� ��� �������� ��������, ��� � ���������� � ������� ������� ���� ��������. ���� ��� ���� ���������� ��� PARODD, ����������� �������� �� ����������, � ��������� ������ - �� ��������.
���� ���������� ��� CREAD, �� �������� ����� ������, � ��������� ������ ������� ����������� �� �����.
���� ���������� ��� HUPCL, �� ����� ����� ����� �����������, ����� ��������� �������, ����������� ��, ������� ����� ��� ����������. � ���������� ������ ���������� ��������� � ��������� ������ ��������.
���� ���������� ��� CLOCAL, �� ���������, ��� ����� ����� ���������, � ������ ����������� ��� ��������� ����������. � ��������� ������ �������������� �������� ����������.
���� ���������� ��� LOBLK, �� ����� ����������� shell'�, �� ���������� ��������, ����� �������������. � ��������� ������ ����� ������ ����������� ����� ��������������������.
����� �������� ������������� ����� ����� ����������� ��������� ���������� ��������������: B300, CS8, CREAD, HUPCL.
���� c_lflag ��������� termio ������������ ��� ����������� ������ ������ � ������������ ������. ������� ����� (0) ������������ ��������� �����������:
ISIG | 0000001 | ��������� �������. |
---|---|---|
ICANON | 0000002 | ������������ ���� (��������� ����� � �����������). |
XCASE | 0000004 | ������������ ������������� �������/����� ����. |
ECHO | 0000010 | ��������� ���. |
ECHOE | 0000020 | ���������� ������ ����� ��� ������: ������� �� ���, ������, ������� �� ���. |
ECHOK | 0000040 | �������� ������� ������ ����� ������� �����������. |
ECHONL | 0000100 | ���������� ������� ������. |
NOFLSH | 0000200 | ��������� ����� ����� ���������� ��� ������. |
���� ���������� ��� ISIG, �� ������ �������� ������ ������������ �� ������������ ������������ ��������� INTR, SWTCH � QUIT. � ������ ���������� ����������� ��������������� �������. ���� ��� ISIG �� ����������, �� ������� �������� �� ������������. ����� �������, ���������� ���������� ����������� ������� ����� �������� ������ ��� ������������� ���� ISIG. ��� ������� ����� ���� ��������� �� �����������, � ������� ����� ������������ ������� �� ������������� ��� ����������� �������� (��������, 0377).
���� ���������� ��� ICANON, �� ��������� ������������ ��������� �����. ��� �������� ���������� ������� �������������� [����� (ERASE) � ����������� (KILL)], �� �������� �������� �������� � ������, ����������� ��������� NL, EOF � EOL. ���� ��� ICANON �� ����������, �� ������� �� ������ ��������������� ����� �� ������� �����. ������ �� ������ �� ����� ������������ �� ��� ���, ���� �� �������� �� ������� ���� MIN �������� ��� �� ������� ����� �������� TIME ����� ������������� �������� (�� ���� ����� TIME �������� ������������� ����� ����������� ������� �������). ����� ������ ��������� ���������� ������ �� ����� ������� ���������� ����� � � �� �� ����� ��������� ������������ ����. ������� �������� TIME ���������� ��� ����������� ��������, �� ���� ������ �� ������ ����� ������������, ������ ����� �������� �� ������� ���� MIN ��������. �������� MIN � TIME �������� �������������� � �������� ��� �������� EOF � EOL (��. ���������� ���� <sys/termio.h>). ����� �������� � ������� ����� �������.
���� ����������� ���� XCASE � ICANON, �� ��� ����� ����� �������������� ��� �������, ����� ����� ��� ����� ������ \, � ��������� � ���� ���� ��������, ������ �� ������� ���� \. � ���� ������ ��������� ����������� ������������������ ������������ ��� ������ � �������������� ��� �����:
��� ����� �������: | �����������: |
---|---|
` | \' |
| | \! |
~ | \^ |
{ | \( |
} | \) |
\ | \\ |
���� ���������� ��� ECHO, �� ��� ��������� ������� ���������� ��� ��������������.
����� ���������� ��� ICANON, �������� ��������� ������� ��������������. ���� ����������� ���� ECHO � ECHOE, �� ������ ����� ������������ ��� ������ ASCII-�������� (BS, SP, BS), � ���������� ���� ��������� �� ��������� ����� ���� �������� �������� � ������. ���� ���������� ��� ECHOE, � ECHO ���, �� ������ ����� ������������ ��� ���� (SP BS). ���� ���������� ��� ECHOK, �� ����� ������� ����������� ����� ������� ������� ������ (NL), ����� ����������� ���� �����������. �������, ��� ������� ����� � ����������� ����� ���� ������������, ���� ����� ���� ��������� \, � ����� ��� ������ ����������� �����. ���� ���������� ��� ECHONL, �� ������� ������ ����� ������������ ���� � ��� ������, ����� �� ���������� ��� ECHO, ��� ������� ��� ���������� � ��������� ��������������� (��� ���������� ��������������). ������ ����� ����� (EOF) �� ������������, ���� ������ �� �� �����������. ��� ��� ��������������� ��������� ����� ����� ������ ASCII-������ EOT (����� ��������), �������������� ����� ����� ������� �� � ������������ ����� �����������, ����������� �� EOT.
���� ���������� ��� NOFLSH, �� �� ����� ����������� ������ ����������� ����� �������� ����� � ������ ��� ��������� �������� ������, ������������ � ����������.
� ��������� ��������� ��� ���� ���� c_lflag ����� 0.
�������� ��������� ������ ioctl(2) ��� ������������ ������ ����� ���:
ioctl (fildes, command, arg) struct termio *arg;�������� ��� ����� ��������� �������:
ioctl (fildes, command, arg) int arg;���� ��� ����� ��������� �������:
�����
/dev/tty* <sys/termio.h>
��. �����
stty(1) � ����������� ������������.
fork(2), ioctl(2), setpgrp(2), signal(2) � �����������
������������.
|