Как программы взаимодействуют с внешним миром?
Прежде чем начать, скажу пару общих слов о том, как программы взаимодействуют с внешним миром.
Откуда вообще программы могут брать данные?
Один вариант мы уже назвали — данные может ввести пользователь, используя клавиатуру или клавиатуру и мышку. Так работает, например, консольная программа yt-dlp (позволяет скачивать видео с ютуба и других видеохостингов). Или калькулятор Windows.
Программа может брать данные из памяти компьютера. Например, просмотрщик фотографий, медиаплеер или более точный пример — BIOS вашего ПК.
Ещё один вариант: получать данные с различных устройств, например, с web-камеры или микрофона. Например, Zoom или недавно преставившийся Skype.
С учетом развития сетевых технологий важно упомянуть, что программы могут получать данные по сети, например, через Интернет.
Конечно, нельзя забывать и о том, что программы обмениваются данными друг с другом. Например, абсолютно любая программа на вашем компьютере и операционная система. Собственно, все варианты описанные ранее в том или ином виде взаимодействуют с внешним миром через взаимодействие с операционной системой и драйверами устройств.
Да что говорить, ведь даже ваша первая программа "Hello, World!" и та возвращала в вызывающую её программу значение 0 (ещё не забыли про инструкцию return?).
В общем, каналов получения данных достаточно много.
Зачастую программы получают данные, используя не один, а сразу несколько каналов. Например, веб-браузер. С одной стороны, он получает данные от пользователя (адрес сайта, клики мышкой по элементам сайта), с другой — получает данные по сети от сервера, где хранится сайт. Кроме того, если мы кому-нибудь позвоним через интернет, то данные будут поступать уже от перефирийных устройств: микрофона и видео-камеры. Про постоянное взаимодействие браузера с операционной системой, думаю, можно и не упоминать.
В этом уроке мы научим ваши программы получать данные, которые пользователь вводит с клавиатуры.
Что же касается вывода данных из программы, то мы разберёмся, как выводить данные на экран консоли.
Хотя, конечно, для вывода данных доступны все те же варианты, что и для ввода: файлы, другие программы, перефирийные устройства, сеть и пр.
Практика
- Подумайте, как взаимодействуют с внешним миром программы, которыми вы обычно пользуетесь? Откуда в них поступают данные? Куда эти программы выводят результаты своей работы?