Комбинированное переключение

Комбинированное переключение

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

getput4 < mywords > savewords

и требуемое задание будет выполнено. Команда

getput4  > savewords < mywords

приведет к такому же результату, поскольку порядок указания операций переключения не имеет значения. Нельзя использовать в одной команде один и тот же файл и для ввода и для вывода одновременно.

getput4 mywords             НЕПРАВИЛЬНО

     Причина этого заключается в том, что указание операци, > mywords приводит к стиранию исходного файла перед его использованием в качестве входного.

                                                          РИС. 6.5. Комбинированное переключение.

     Теперь, мы думаем, настало время суммировать правила, касающиеся использования двух операций переключения < и >.

     1. Операция переключения связывает выполняемую программу (в том числе и стандартные команды ОС UNIX) с некоторым файлом. Она не может использоваться для связи одного файла с другим или одной программы с другой.

     2. Имя выполняемой программы должно стоять слева от знака операции, а имя файла - справа от него.

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

     4. Обычно между именем и операцией пробелы не обязательны кроме тех редких случаев, когда используются некоторые символы специального назначения в интерпретаторе команд UNIX. Мы могли бы писать, например, так: getput4 < words, или, что более предпочтительно, getput4 < words.

Мы уже привели выше несколько примеров правильного использования операций переключения. Ниже дается несколько ошибочных примеров (addup и count - выполняемые программы, a fish и stars - текстовые файлы).

fish > stars                 Нарушение правила 1

addup < count            Нарушение правила 1

stars > count              Нарушение правила 2

addup < fish < stars     Нарушение правила 3

count > stars fish        Нарушение правила 3

     B OC UNIX применяются также операция >>, позволяющая добавлять данные в конец существующего файла, и операция "канал" (|), связывающая файл вывода одной программы с вводом другой. Для получения более детальной информации обо всех этих операциях вам необходимо обратиться к руководству по ОС UNIX (по аналогии с этим нам приходит в голову название "ОС UNIX: руководство для начинающих").

     Рассмотрим еще один пример: напишем очень простую программу, шифрующую сообщения; с этой целью мы немного изменим программу ввод-вывод4 и получим

/* простой шифр */

/* заменяет каждый символ текста */

/* следующим по порядку из кода ASCII */

#include

 main( )

{ int ch;

  while ((ch = getchar ( )) ! = EOF)

   putchar (ch + 1);

}

     Функция putchar( ) переводит целое "ch + 1" в соответствующий символ. Выполните теперь компиляцию программы и поместите выполняемый объектный код в файл с именем simplecode. Затем занеси те приведенные ниже строки  в файл с именем original. (Для этого можно воспользоваться системным текстовым редактором или, как было показано ранее, программой ввод-вывод4) .

Good spelling is an aid

to clear writing.

Теперь введите команду

simplecode < original

Результат должен выглядеть приблизительно так:

!!!!!Hppe!tqfmmjoh!jt!bo!bje>Kup!dmfbs!xsjujohl> k

Буква G заменится на Н, о на р и т.д. Вас может удивить следующее: во-первых, что пробелы превратились в восклицательные знаки. Это служит напоминанием, что пробел - такой же символ, как и все остальные. Во-вторых, две строки слились в одну. Почему?

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Вытеснение и переключение контекста

Из книги автора

Вытеснение и переключение контекста Переключение контекста — это переключение от одной, готовой к выполнению задачи к другой. Это переключение производится с помощью функции context_switch(), определенной в файле kernel/sched.c. Данная функция вызывается функцией schedule(), когда новый


24.2.6. Переключение наборов символов

Из книги автора

24.2.6. Переключение наборов символов Большинство современных терминалов (включая VT100, который достаточно точно эмулирует консоль Linux) поддерживают как минимум два набора символов. Основным набором обычно является ISO-8859-1 или ему подобный; другой набор используется главным


Аппаратное переключение контекста

Из книги автора

Аппаратное переключение контекста Так как только что описанным процедурам обработки исключений может потребоваться доступ к привилегированным командам PowerPC, механизм прерываний должен иметь возможность переключать состояние процессора при передаче управления


6.4.3 Переключение контекста

Из книги автора

6.4.3 Переключение контекста Если обратиться к диаграмме состояний процесса (Рисунок 6.1), можно увидеть, что ядро разрешает производить переключение контекста в четырех случаях: когда процесс приостанавливает свое выполнение, когда он завершается, когда он возвращается


11.3.3. Переключение кодировок

Из книги автора

11.3.3. Переключение кодировок Теперь поговорим о том, как "на лету" изменить кодировку символов. Необходимость в этом возникает в тех случаях, когда просматриваешь какой-то файл и вместо читаемого текста видишь непонятную абракадабру. В таких случаях хочется превратить ее


3.8.6 Комбинированное шифрование

Из книги автора

3.8.6 Комбинированное шифрование Комбинированное шифрование реализуется следующим образом:? Выбирается случайный симметричный ключ.? По этому ключу шифруются данные.? Случайный ключ шифруется с помощью общедоступного ключа шифрования получателя и включается в


4.2.2. Запуск программ и переключение между ними

Из книги автора

4.2.2. Запуск программ и переключение между ними В общем случае запустить программу или приложение на выполнение можно несколькими способами:? Щелкнуть мышкой по значку программы на панели (если таковой имеется).? Щелкнуть мышкой по соответствующему значку рабочего стола


 6. Функции и переключение ввода-вывода   

Из книги автора

 6. Функции и переключение ввода-вывода     В вычислительной технике слова "ввод" и "вывод" применяются в нескольких разных смыслах. Мы можем говорить об устройствах ввода и вывода, таких, как терминалы, накопители на магнитных дисках, точечно-матричные принтеры и т. п., или


ПЕРЕКЛЮЧЕНИЕ И РАБОТА С ФАЙЛАМИ

Из книги автора

ПЕРЕКЛЮЧЕНИЕ И РАБОТА С ФАЙЛАМИ     Понятие ввода-вывода включает в себя функции, данные и устройства. Рассмотрим, например, нашу программу ввод-вывод4. В ней используется функция getchar( ), осуществляющая ввод, причем устройство ввода - клавиатура (в соответствии с нашим


Переключение вывода

Из книги автора

Переключение вывода Предположим, вы осуществили компиляцию программы ввод-вывод4 и поместили выполняемый объектный код в файл с именем getput4. Затем, чтобы запустить данную программу, вы вводите с терминала только имя файла getput4и программа выполняется так, как было описано


Переключение ввода

Из книги автора

Переключение ввода      Теперь предположим (если вы еще не устали и в состоянии что-нибудь предположить), вам хочется, чтобы слова, вводимые с клавиатуры, попадали в файл с именем mywords. Для этого вы должны ввести команду getput4 > mywordsи начать ввод символов. Символ > служит


Переключение между формами

Из книги автора

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


2.2.1. Переключение между окнами

Из книги автора

2.2.1. Переключение между окнами Windows является многозадачной операционной системой. То есть вы можете работать одновременно в нескольких программах и переключаться между ними. Объясняю, как это делается. Итак, сейчас у вас открыто окно Мой компьютер, сверните его на панель


1.10.6. Быстрое переключение пользователей

Из книги автора

1.10.6. Быстрое переключение пользователей Функция быстрого переключения пользователей позволяет, не завершая работы учетной записи одного пользователя, производить регистрацию от имени другого. Активизация этой функции происходит в окне Учетные записи (Accounts) при