Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать книгу онлайн бесплатно, автор Стивен Прата
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

echo_eof < words

Символ < представляет собой операцию перенаправления в Unix, Linux и DOS/ Windows. Она приводит к тому, что файл words ассоциируется с потоком stdin с передачей по каналу содержимого файла в программу echo_eof. Сама программа echo_eof даже не знает (и не беспокоится об этом), что ввод поступает из файла, а не с клавиатуры. Ей известен только тот факт, что ей поставляется поток символов, поэтому программа читает и выводит по одному символу за раз, пока не будет достигнут конец файла. Поскольку в С файлы и устройства ввода-вывода приравнены друг к другу, файл теперь является устройством ввода-вывода. Опробуйте это!

НА ЗАМЕТКУ! Дополнительные пояснения по перенаправлению

В Unix, Linux и командной строке Windows пробелы с обеих сторон знака < не обязательны.

Некоторые системы вроде AmigaDOS (упоминается специально для тех, кто ностальгирует

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

Ниже приводится пример запуска программы echo_eof с конкретным текстовым файлом words; знак $ — одно из стандартных приглашений на ввод в Unix и Linux. В Windows/DOS приглашение на ввод может выглядеть как А> или С>.

$ echo_eof < words

Пешеходов надо любить.

Пешеходы составляют большую часть человечества.

Мало того - лучшую его часть.

Пешеходы создали мир.

$

Итак, перейдем к сути дела.

Символьный ввод-вывод и проверка достоверности ввода 303

Перенаправление вывода

Теперь предположим, что вы хотите, чтобы программа echo_eof пересылала клавиатурный ввод в файл по имени mywords. В этом случае потребуется ввести следующую команду и начать набор:

echo_eof > mywords

Знак > представляет еще одну операцию перенаправления. Он приводит к созданию нового файла с именем mywords и переадресует в него вывод echo eof (т.е. копию символов, набираемых на клавиатуре). Перенаправление переназначает stdout с устройства отображения (экрана) на файл mywords. Если файл mywords уже существует, обычно он очищается и заменяется новым содержимым. (Однако многие операционные системы предоставляют возможность защиты существующих файлов, делая их файлами только для чтения.) Все, что вы видите на экране — это символы, набираемые на клавиатуре, а их копии поступают в файл. Чтобы завершить программу, нажмите комбинацию клавиш (Unix) или (DOS) в начале строки. Попробуйте это сами. Если не можете придумать, что вводить с клавиатуры, просто повторите приведенный ниже пример. В нем присутствует приглашение $ системы Unix. Не забывайте завершать каждую строку нажатием , чтобы содержимое буфера отправлялось в программу.

$ echo_eof > mywords

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

[Ctrl+D]

$

После того, как комбинация или будет обработана, программа завершится и на экране снова отобразится приглашение на ввод. Выполнила ли программа свою работу? Команда Is системы Unix или команда dir командной строки Windows, которые выводят на экран список имен файлов, должны подтвердить существование файла mywords. Вы можете воспользоваться командой cat в Unix и Linux или type в DOS для проверки его содержимого либо запустить программу echo eof снова, на этот раз перенаправив файл mywords в программу:

$ echo_eof < mywords

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

$

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

Теперь предположим, что вы хотите создать копию файла mywords и назначить ей имя savewords. Достаточно ввести следующую команду:

echo_eof < mywords > savewords

и дело сделано. Показанная далее команда также сработает, потому что порядок указания операций перенаправления не играет роли:

echo_eof > savewords < mywords

304 Глава 8

Однако будьте внимательны: не применяйте один и тот же файл для ввода и вывода внутри одной команды:

echo_eof < mywords > mywords <- НЕПРАВИЛЬНО!

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

В двух словах, существуют правила, регламентирующие применение операций перенаправления (< и >) в средах Unix, Linux и Windows/DOS.

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

• С помощью этих операций ввод нельзя получать из более чем одного файла, а вывод направлять в более чем один файл.

• Обычно пробелы между именами и операциями являются необязательными за редким исключением, когда применяются специальные символы, имеющие особый смысл в командной оболочке Unix или Linux либо в режиме командной строки Windows. Например, можно было бы иметь команду echo_eof < words.

Вы уже видели несколько правильных примеров. Ниже перечислен ряд некорректных примеров, в которых addup и count выступают как исполняемые программы, а fish и beets — как текстовые файлы:

fish > beets <- Нарушает первое правило

addup < count <- Нарушает первое правило

addup < fish < beets <- Нарушает второе правило

count > beets fish <- Нарушает второе правило

В средах Unix, Linux и Windows/DOS также доступна операция >>, которая позволяет добавлять данные в конец существующего файла, и операция конвейера (I), делающая возможным соединение вывода одной программы с вводом другой программы. За дополнительными сведениями по всем этим операциям обращайтесь к соответствующим книгам.

Комментарии

Перенаправление позволяет использовать программы, предназначенные для обработки ввода с клавиатуры, с файлами. Для этого в программе должна предприниматься проверка на предмет достижения конца файла. Например, в главе 7 была представлена программа, которая подсчитывала слова до появления первого символа |. Измените тип ch с char на int и замените ' | ' на EOF в выражении проверки цикла, после чего эту программу можно будет применять для подсчета слов в текстовых файлах.

Перенаправление — это концепция командной строки, т.к. оно задается путем ввода с клавиатуры специальных символов в командной строке. Если вы не используете среду командной строки, возможность применения этого приема по-прежнему доступна. Во-первых, в некоторых интегрированных средах имеются пункты меню, позволяющие указывать перенаправление. Во-вторых, в системах Windows можно открыть окно командной строки и запустить исполняемый файл в командной строке. По умолчанию среда Microsoft Visual Studio помещает исполняемый файл в подпапку Debug внутри папки проекта. Имя файла будет иметь то же базовое имя, что у проекта, и расширение . ехе. По умолчанию система XCode также называет исполняемый файл по имени проекта и помещает его в папку Debug. Исполняемый файл можно запустить из

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Прата читать все книги автора по порядку

Стивен Прата - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x