cfsetispeed()

Задать скорость ввода данных, хранящуюся в структуре termios

Прототип:

#include <termios.h>
int cfsetispeed( struct termios *termios_p,
speed_t speed );

Аргументы:

termios_p
Указатель на struct termios, описывающую управляющие атрибуты терминала.
speed
Новое значение скорости. Допустимые значения для speed определены в <termios.h>.

Библиотека:

libc

Описание:

Функция cfsetispeed() устанавливает скорость ввода данных для struct termios, на которую указывает termios_p, в значение speed.

Корректную структуру struct termios для открытого устройства можно получить с помощью вызова tcgetattr().


Note:
  • Новая скорость не будет применена до тех пор, пока не будет вызвана функция tcsetattr() с модифицированной struct termios.

  • Попытки установить скорость в значение, не поддерживаемое аппаратурой, игнорируются и приведут к тому, что функция tcsetattr() вернёт ошибку, но cfsetispeed() не укажет, что ошибка произошла.

  • Попытки установить скорость ввода, отличающуюся от скорости вывода, в случае, когда аппаратура не поддерживает раздельные скорости, игнорируются, но ошибка при этом не возникает.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EINVAL
Один из аргументов некорректен.
ENOTTY
Функция не поддерживается системой.

Примеры:

#include <termios.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main( void )
{
int fd;
struct termios termios_p;
speed_t speed;
fd = open( "/dev/ser1", O_RDWR );
tcgetattr( fd, &termios_p );
/*
* Set input baud rate
*/
speed = 9600;
cfsetispeed( &termios_p, speed );
tcsetattr( fd, TCSADRAIN, &termios_p );
close( fd );
return (EXIT_SUCCESS);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

errno, cfgetispeed(), cfgetospeed(), cfsetospeed(), tcgetattr(), tcsetattr(), struct termios




Предыдущий раздел: Описание API системной библиотеки