Изменить настройки управления терминалом для устройства
#include <termios.h>int tcsetattr( int fildes,int optional_actions,const struct termios *termios_p );
libc
Функция tcsetattr() устанавливает текущие настройки управления терминалом для открытого устройства, связанного с fildes, в значения, хранящиеся в структуре, на которую указывает termios_p.
Действие tcsetattr() зависит от значений в optional_actions:
Структура struct termios определена в <termios.h>
. Для дополнительной информации, см. tcgetattr().
#include <stdlib.h>#include <termios.h>int raw( int fd ){struct termios termios_p;if ( tcgetattr( fd, &termios_p ) )return (-1);termios_p.c_cc[VMIN] = 1;termios_p.c_cc[VTIME] = 0;termios_p.c_lflag &= ~(ECHO | ICANON | ISIG|ECHOE | ECHOK | ECHONL);termios_p.c_oflag &= ~(OPOST);return (tcsetattr( fd, TCSADRAIN, &termios_p ));}int unraw( int fd ){struct termios termios_p;if ( tcgetattr( fd, &termios_p ) )return (-1);termios_p.c_lflag |= (ECHO | ICANON | ISIG |ECHOE | ECHOK | ECHONL);termios_p.c_oflag |= (OPOST);return (tcsetattr( fd, TCSADRAIN, &termios_p ));}int main( void ){raw( 0 );/* Stdin is now "raw" */unraw( 0 );return (EXIT_SUCCESS);}
POSIX 1003.1
errno, ioctl(), select(), tcgetattr(), struct termios
Предыдущий раздел: Описание API системной библиотеки