Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Общий
(Модератор:
Вад
) > Тема:
Потоки stdin stdout
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Потоки stdin stdout (Прочитано 7584 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Boriska
Помогающий
Offline
Потоки stdin stdout
«
:
22-04-2023 20:15 »
Привет форумчане.
Изучая С встретился с потоками stdin stdout. Из литературы по языку понял, что это потоки байт. Но откуда и куда толком не понятно. Сказано связывается программа с клавиатурой и консолью. Толком как их использовать для своих других нужд не понял. Народ не изучавший С вообще такого понятия вокруг меня не имеет, обсудить не с кем. Далее программировал под микроконтроллеры на С обнаружил, stdout связан с USART. Далее разбираясь с CGI скриптами опять же используя С++ обнаружил, что сервер толкает данные в stdout и читает из stdin. Напрашивается вывод что эти объекты позоляют связывать разные программы и не обязательно это принадлежность осей. Вот не понятно с одной стороны это нечто в Линуксе и Винде, а с другой стороны в бинарнике для микроконтроллера. Просветите пожалуйста.
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: Потоки stdin stdout
«
Ответ #1 :
22-04-2023 23:44 »
Язык С создавался для Uniх. В Unix у каждого процесса есть три "стандартных потока": stdin (ввод), stdout (вывод) и stderr (вывод ошибок). Сейчас все тоже самое есть даже в Винде.
"Стандартный поток" — это просто файл. В Unix почти все является файлом. Stdin — это может быть ввод из файла, ввод с клавиатуры (консоль), ввод из сокета (сетевые соединения), ввод из соединительного канала между процессами (pipe). Аналогично с выводом: файл, сокет, консоль, последовательный порт, pipe. В Unix-подобных системах нет ограничений на этот счет, лишь бы устройство принимало и отдавало байты последовательно. С чем будет связан конкретный поток, зависит от окружения, в котором запущена программа, и от самой программы: ведь достаточно закрыть существующий файл и на тот же номер добавить другой. В не Unix-подобном окружении (точнее в POSIX-совместимом) программа ограничена в таких маневрах.
В микроконтроллере без операционной системы потоки и файлы — просто имитация для совместимости с некоторыми функциями стандартной библиотеки С. Скорее всего, откуда вводить и куда выводить, определяется уже на этапе компиляции прошивки.
«
Последнее редактирование: 22-04-2023 23:47 от RXL
»
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Georgiy38
Гость
Re: Потоки stdin stdout
«
Ответ #2 :
07-04-2024 14:57 »
Это все сложно.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: Потоки stdin stdout
«
Ответ #3 :
07-04-2024 15:30 »
Georgiy38
, ну а ты что хотел ) Конечно сложно.
Что рекламировать будешь?
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Общий
(Модератор:
Вад
) > Тема:
Потоки stdin stdout
Загружается...