Читаем Разработка приложений в среде Linux. Второе издание полностью

int cfsetospeed(struct termios * t, speed_t speed);

int cfsetispeed(struct termios * t, speed_t speed);

Устанавливает, соответственно, вывода или ввода в t на speed. Обратите внимание, что эта функция не меняет скорость соединения на любом файловом дескрипторе; она просто устанавливает скорость в структуре termios. Скорость, как и другие характеристики, применяется к файловому дескриптору с помощью tcsetattr().

Эти функции принимают символическую скорость — то есть число, соответствующее определению одного из следующих макросов, имена которых определяют скорость в битах в секунду: B0 (0 бит в секунду, определяет отключенное состояние) B50, B75, B110, B134[113], B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, B38400, B57600, B115200, B230400, B460800, B500000, B576000, B921600, B1000000, B1152000, B1500000, B2000000, B2500000, B3000000, B3500000 или B4000000. B57600 и выше в POSIX не описаны; переносимые исходные коды использует их только в том случае, если они защищены операторами #ifdef.

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

В настоящий момент скорость ввода игнорируется. Интерфейс termios устанавливает отдельные скорости ввода и вывода для асинхронного оборудования, допускающего раздельные скорости, но такое оборудование встречается довольно редко. Просто вызовите cfsetospeed() и cfsetispeed() попарно, чтобы ваш код продолжил работать в системах, поддерживающих раздельные скорости.

Не все tty поддерживают все скорости — последовательные порты на стандартных ПК не поддерживают более 115 200 бит/с. Как уже упоминалось выше, если для вас имеет значение, вступит ли в силу определенная настройка, необходимо использовать tcgetattr() для проверки после того, как вы попытаетесь установить ее с помощью tcsetattr(). Также обратите внимание, что установленная вами скорость является необязательной. Некоторые tty, например, локальные консоли, благополучно принимают и игнорируют любую установленную вами скорость.

int tcsendbreak(int fd, int duration)

Посылает поток нулей в fd, чтобы узнать определенную длительность (duration), которая также известна как разрыв. Если duration равняется 0, разрыв длится не менее 250 и не более 500 миллисекунд. К сожалению, POSIX не определяет элемент, длительность которого измеряется, поэтому единственной переносимой величиной для duration является 0. В Linux длительность увеличивает разрыв; 0 или 1 задают длительность между четвертью секунды и полсекунды; 2 — между полсекунды и секундой и так далее.

int tcdrain(int fd)

Ожидает, пока не передадутся все входные данные, ожидающие в данный момент на файловом дескрипторе fd.

int tcflush(int fd, int queue_selector)

Отбрасывает некоторые данные в файловом дескрипторе fd в зависимости от величины queue_selector.

TCIFLUSHСбрасывает на диск все полученные, но еще не прочитанные интерфейсом данные.
TCOFLUSHСбрасывает на диск все данные, записанные в интерфейс, но еще не отправленные.
TCIOFLUSHСбрасывает на диск все ожидающие входные и выходные данные.

int tcflow(int fd, int action)

Приостановить или возобновить вывод или ввод в файловом дескрипторе fd. Более точные действия определяются action.

TCOOFFПриостановить вывод.
TCOONВосстановить вывод.
TCIOFFПередать символ STOP, запрашивающий прекращение передачи символов вторым концом соединения.
TCIONПередать символ START, запрашивающий восстановление передачи символов вторым концом соединения.

Обратите внимание, что TCIOFF и TCION необязательны, и даже если второй конец соединения принимает их на обработку, перед этим может возникнуть задержка.

<p>16.5.2. Размеры окна</p>
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных