Основы программирования в Linux
Шрифт:
Вы можете откорректировать основной недостаток вашей подпрограммы меню, просто игнорируя дополнительный символ перевода строки с помощью программного кода, подобного приведенному далее:
Он решает непосредственно возникшую проблему, и вы увидите вывод, подобный приведенному далее:
Мы
Обработка перенаправленного вывода
Для программ, выполняющихся в ОС Linux, даже интерактивных, характерно перенаправление своего ввода и вывода как в файлы, так и в другие программы. Давайте рассмотрим поведение вашей программы при перенаправлении ее вывода в файл.
Такой результат можно было бы считать успешным, потому что вывод перенаправлен в файл вместо терминала. Однако бывают случаи, когда нужно помешать такому исходу событий или отделить приглашения или подсказки, которые пользователь должен видеть, от остального вывода, благополучно перенаправляемого в файл.
О перенаправлении стандартного вывода можно судить по наличию низкоуровневого дескриптора файла, ассоциированного с терминалом. Эту проверку выполняет системный вызов
Системный вызов
В данной программе используются файловые потоки, но
Что вы собираетесь делать, если стандартный вывод
Внесите следующие изменения в директивы включения заголовочных файлов и функцию main программы menu1.с из упражнения 5.1. Назовите новый файл menu2.c.
Теперь посмотрите на следующий пример вывода:
Как это работает
В новом фрагменте программного кода функция
или объединить оба выводных потока в одном файле:
(Если вы не знакомы с перенаправлением вывода, прочтите еще раз главу 2, в которой мы более подробно рассматриваем синтаксические правила, связанные с ним.) В данном случае вам нужно отправить сообщение непосредственно на терминал пользователя.
Диалог с терминалом
Если нужно защитить части вашей программы, взаимодействующие с пользователем, от перенаправления, но разрешить его для других входных и выходных данных, вы должны отделить общение с пользователем от потоков
Ветхий Завет. Перевод и комментарии
Религия и эзотерика:
прочая религиозная литература
рейтинг книги
Африканский казак
Приключения:
исторические приключения
рейтинг книги
Второгодка. Книга 5. Презренный металл
5. Второгодка
Фантастика:
городское фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Путь воинов
2. Спайдер
Фантастика:
боевая фантастика
рейтинг книги
Точка Бифуркации VI
6. ТБ
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Цикл "Идеальный мир для Лекаря". Компиляция. Книги 1-30
Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
аниме
фэнтези
рейтинг книги
Интеллект в подарок
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Екатерина I
7. Романовы. Династия в романах
Проза:
историческая проза
рейтинг книги