Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 30 из 715

Например, команда

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›» и назначает в соответствии с их указанием файлы для стандартного ввода, стандартного вывода и записи сообщений об ошибках непосредственно перед запуском процессов.

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

|< Пред. 28 29 30 31 32 След. >|

Java книги

Контакты: [email protected]