cfsetospeed()

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

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

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

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


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

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

Установка скорости вывода в B0 вызывает разрыв соединения. Если termios_p представляет модем, линии управления модема будут отключены.

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

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 output baud rate
*/
speed = B9600;
cfsetospeed( &termios_p, speed );
tcsetattr( fd, TCSADRAIN, &termios_p );
close( fd );
return (EXIT_SUCCESS);
}

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

POSIX 1003.1

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

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

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




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