русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Передача двоичного файла - Пример


Дата добавления: 2013-12-23; просмотров: 698; Нарушение авторских прав


На следующей странице приведены подпрограммы для установки терминального интерфейса в режим ввода/вывода необработанных данных ("сырой") и восстановления исходного режима. Эти подпрограммы работаюттак:

8 fd присваивается 0 или 1, если setrawio вызывается получателем (recv) или передатчиком (xmit), соответственно.

10-11 Если дескриптор файла 0 или 1 не ассоциирован с терминальным специальным файлом, эта функция возвращает управление немедленно. Это позволяет программе, использующей setrawio, перенаправить свой стандартный ввод/вывод в файл или программный канал (в этом случае, setrawio вообще не нужен). Если же дескриптор ассоциирован с терминальным специ­альным файлом, то режим интерфейса переключается на "сырой" ввод/вывод.

12-15 Для заданного дескриптора файла считывается значение структуры termios.

16 Копия структуры termios сохраняется для восстановления режима терминального интерфей­са, который был до вызова setrawio.

17-22 Флаги в структуре termios устанавливаются для приема и передачи произвольных вось­мибитных данных. Срезание старшего бита, отображение вводимых символов и управление по­током ввода выключены. Размер символа установлен равным восьми битам, и выключен контроль четности. Поиск специальных управляющих символов, канонический ввод и эхо в поле флагов локального режима также выключены. Заметьте, что эта функция одна и та же как для ввода, так и для вывода, так как установки флагов для ввода не влияют на вывод, и наоборот.

23-24 Для неканонического ввода MIN устанавливается равным размеру буфера ввода, ис­пользуемого в вызове read(2). Таймер не используется, поэтому TIME устанавливается в ноль.

25 Режим терминального интерфейса будет изменен после того, как весь вывод будет передан, а ввод - сброшен.

32 Терминальный интерфейс возвращается в то состояние, в котором он находился до вызова функции setrawio.



Файл: setrawio.c

ПЕРЕДАЧА ДВОИЧНОГО ФАЙЛА - ПРИМЕР setrawio.c

 

1 #include <stdlib.h>

2 #include <stdio.h>

3 #include <termios.h>

4 #include "xmit.h"

6 static struct termios tty, savtty;

8 void setrawio(int fd) /* set "raw" input/output modes */

9 {

10 if (!isatty(fd))

11 return;

12 if (tcgetattr(fd, &tty) == -1) {

13 perror("tcgetattr");

14 exit(2);

15 }

16 savtty= tty;

17 tty.c_iflag &= ~(BRKINT | ISTRIP | INLCR | ICRNL

18 | IUCLC | IXON);

19 tty.c_oflag &= ~OPOST;

20 tty.c_cflag |= CS8;

21 tty.c_cflag &= ~PARENB;

22 tty.c_lflag &= ~(ISIG | ICANON | ECHO);

23 tty.c_cc[VMIN] = BLOCKSIZE; /* MIN */

24 tty.c_cc[VTIME] = 0; /* TIME */

25 tcsetattr(fd, TCSAFLUSH, &tty);

26 }

28 void restorio(int fd) /* restore terminal modes */

29 {

30 if (!isatty(fd))

31 return;

32 tcsetattr(fd, TCSAFLUSH, &savtty);

33 }

 



<== предыдущая лекция | следующая лекция ==>
Программа просмотра файла - Пример | Сессии и группы процессов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.198 сек.