Все о моделировании в Компас-3D LT
   Главная Статьи Файлы Форум Ссылки Категории новостей
May 21 2024 17:36:45   
Навигация
Главная
Статьи
Файлы
FAQ
Форум
Ссылки
Категории новостей
Обратная связь
Фото галерея
Поиск
Разное
Карта Сайта
Популярные статьи
Что необходимо ... 65535
4.12.1 Професси... 32995
Учимся удалять!... 31973
Примеры, синони... 23353
Просмотр готовы... 22608
Декартовы коорд... 22124
FAST (методика ... 21390
содержание - се... 20623
Просмотр готовы... 19251
Работа с инстру... 14687
Сейчас на сайте
Гостей: 2
На сайте нет зарегистрированных пользователей

Пользователей: 9,955
новичок: Logyattella
Друзья сайта
Ramblers Top100
Рейтинг@Mail.ru

Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ по Delphi
Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog
1.3.3 Элементы конструкционных блоков
Как уже говорилось ранее, концепция разработки системы UNIX заключалась в построении операционной системы из элементов, которые позволили бы пользователю создавать небольшие программные модули, выступающие в качестве конструкционных блоков при создании более сложных программ. Одним из таких элементов, с которым часто сталкиваются пользователи при работе с командным процессором shell, является возможность переназначения ввода-вывода. Говоря условно, процессы имеют доступ к трем файлам: они читают из файла стандартного ввода, записывают в файл стандартного вывода и выводят сообщения об ошибках в стандартный файл ошибок. Процессы, запускаемые с терминала, обычно используют терминал вместо всех этих трех файлов, однако каждый файл независимо от других может быть «переназначен». Например, команда
ls
выводит список всех файлов текущего каталога на устройство (в файл) стандартного вывода, а команда
ls › output
переназначает выводной поток со стандартного вывода в файл «output» в текущем каталоге, используя вышеупомянутый системный вызов creat. Подобным же образом, команда
mail mjb ‹ letter
открывает (с помощью системного вызова open) файл «letter» в качестве файла стандартного ввода и пересылает его содержимое пользователю с именем «mjb». Процессы могут переназначать одновременно и ввод, и вывод, как, например, в командной строке:
nroff -mm ‹ doc1 › doc1.out 2› errors
где программа форматирования nroff читает вводной файл doc1, в качестве файла стандартного вывода задает файл doc1.out и выводит сообщения об ошибках в файл errors («2›» означает переназначение вывода, предназначавшегося для файла с дескриптором 2, который соответствует стандартному файлу ошибок). Программы ls, mail и nroff не знают, какие файлы выбраны в качестве файлов стандартного ввода, стандартного вывода и записи сообщений об ошибках; командный процессор shell сам распознает символы «‹», «›» и «2›» и назначает в соответствии с их указанием файлы для стандартного ввода, стандартного вывода и записи сообщений об ошибках непосредственно перед запуском процессов.
Вторым конструкционным элементом является канал, механизм, обеспечивающий информационный обмен между процессами, выполнение которых связано с операциями чтения и записи. Процессы могут переназначать выводной поток со стандартного вывода на канал для чтения с него другими процессами, переназначившими на канал свой стандартный ввод. Данные, посылаемые в канал первыми процессами, являются входными для вторых процессов. Вторые процессы так же могут переназначить свой выводной поток и так далее, в зависимости от пожеланий программиста. И снова, так же как и в вышеуказанном случае, процессам нет необходимости знать, какого типа файл используется в качестве файла стандартного вывода; их выполнение не зависит от того, будет ли файлом стандартного вывода обычный файл, канал или устройство. В процессе построения больших и сложных программ из конструкционных элементов меньшего размера программисты часто используют каналы и переназначение ввода-вывода при сборке и соединении отдельных частей. И действительно, такой стиль программирования находит поддержку в системе, благодаря чему новые программы могут работать вместе с существующими программами.
Например, программа grep производит поиск контекста в наборе файлов (являющихся параметрами программы) по следующему образцу:
grep main a.c b.c c.c
где «main» — подстрока, поиск которой производится в файлах a.c, b.c и c.c с выдачей в файл стандартного вывода тех строк, в которых она содержится. Содержимое выводного файла может быть следующим:
a. c: main(argc,argv)
c. c: /* here is the main loop in the program */
c. c: main()
Программа wc с необязательным параметром -l подсчитывает число строк в файле стандартного ввода. Командная строка
grep main a.c b.c c.c | wc -l
вызовет подсчет числа строк в указанных файлах, где будет обнаружена подстрока «main»; выводной поток команды grep поступит непосредственно на вход команды wc. Для предыдущего примера результат будет такой:
3
Использование каналов зачастую делает ненужным создание временных файлов.
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Случайные статьи
Спрашивай – Отвечаем
Простота работы и ...
Вариант 3.
5.9 СМЕНА ТЕКУЩЕГО...
Глава 2. Cистема п...
Глава четвертая. ...
3.2 Методы доступ...
Релевантность
Новая «общественна...
История GeForce
Виды связи и режим...
ГЛАВА 1. ОБЩИЙ ОБ...
Навигационные функции
3.4 ЧТЕНИЕ И ЗАПИС...
5.14.2 Демонтирова...
4. Особенности выд...
продолжение...
1. Общий обзор мет...
Измерения и анализ
4.1.1 Определение
ИДЕНТИФИКАЦИЯ СУЩН...
3.3. Адресация инф...
Методы «точно в ср...
Представление домена
Текст
9.4 ВЫВОДЫ
Интернет-исследова...
Решение проблемы с...
2.1.5. Уровень 5 –...
Глава 1. GARMIN QUEST
До 400 долларов
7.2.5. Проверка в...
2.2.2 Процессы
2.6.3. Сжатие данных
Внешний источник
СЛОЖНЫЙ ПРИМЕР
1. Продукции типа...
4.12.4.3 Низкоорби...
Механизм создания ...
Глава 4. Краткий ...
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
Copyright © 2009