Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Пример 15

/* Команда для изменения скорости обмена в линии (baud).*/
/* Пример вызова в XENIX: baud /dev/tty1a 9600          */
/* /dev/tty1a - это коммуникационный последов. порт #1  */
/* Про управление модами терминала смотри man termio    */
#include <fcntl.h>
#include <termio.h>
struct termio old, new; int fd = 2;  /* stderr */
struct baudrate{ int speed; char *name;} br[] = {
  { B0,    "HANGUP" }, { B1200, "1200" }, { B9600, "9600"   },
  { B600,  "600"    }, { B2400, "2400" }, { EXTA,  "19200"  },
};
#define RATES (sizeof br/sizeof br[0])

main(ac, av) char *av[];
{       register i; char *newbaud;
	if( ac == 3 ){
	    if((fd = open(av[1], O_RDWR)) < 0 ){
		printf("Не могу открыть %s\n", av[1]); exit(1);
	    }   newbaud = av[2];
	} else  newbaud = av[1];
	if( ioctl(fd, TCGETA, &old) < 0 ){
	    printf("Попытка управлять не терминалом и не портом.\n");
	    exit(2);
	}
	if(newbaud == (char*)0) newbaud = "<не задано>";
	new=old;
	for(i=0; i < RATES; i++)
	    if((old.c_cflag & CBAUD) == br[i].speed) goto ok;
	printf("Неизвестная скорость\n"); exit(3);

ok:     printf("Было %s бод\n", br[i].name);
	for(i=0; i < RATES; i++)
	    if( !strcmp(newbaud, br[i].name)){
	      new.c_cflag &= ~CBAUD; /* побитное "или" всех масок B... */
	      new.c_cflag |= br[i].speed;
	      if( ioctl(fd, TCSETA, &new) < 0) perror("ioctl");
   /* Скорость обмена может не измениться, если терминал
    * не открыт ни одним процессом (драйвер не инициализирован).
    */        exit(0);
	    }
	printf("Неверная скорость %s\n", newbaud); exit(4);
}

© Copyright А. Богатырев, 1992-95
Си в UNIX

Назад | Содержание | Вперед

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...