![]() |
|
Модераторы: bsa |
![]()
|
|
| Hagrael |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 26.6.2011 Репутация: нет Всего: нет |
Как работает данный поток? Да и вообще что из себя представляет поток? Это какое место (очередь) в памяти или же что?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А что это за поток такой? В стандартах С и С++ он не упоминается. Может тебе в WinAPI обратиться?
Это сообщение отредактировал(а) bsa - 4.7.2011, 23:20 |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
ConsoleIn - ?
Это похоже даже не WinAPI, а гораздо дальше от темы. Что-то из Java? |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 2 Всего: 37 |
Hagrael, может быть это Console.In из CLI C++?
|
|||
|
||||
| Hagrael |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 26.6.2011 Репутация: нет Всего: нет |
Я говорил о потоке, объект которого cin (оттуда и ConsoleIN). Извините, если неправильно расшифровал.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Hagrael, при запуске консольной программы она получает 3 открытых файла:
0 - STDIN_FILENO 1 - STDOUT_FILENO 2 - STDERR_FILENO Запись в 2 последних приводит к выводу данных на экран, чтение из первого - чтение данных с клавиатуры (в принципе, запускающий процесс может изменить цели и источники, например, связав 0-й поток процесса с файлом, 1-й с 0-м второго процесса, а 1-й второго процесса с другим файлом, в итоге получится цепочка "фильтров"). стандартная библиотека С оборачивает их в потоки stdin, stdout и stderr, для работы через fprintf, fputs... стандартная библиотека С++ оборачивает их в потоки std::cin, std::cout и std::cerr. cin ведет себя как экземпляр класса std::istream, у которого есть некий специальный streambuf (аналог filebuf), осуществляющий чтение из файла с дескриптором 0. |
|||
|
||||
| Hagrael |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 26.6.2011 Репутация: нет Всего: нет |
В общем, поток - это файл, так?
А как вообще после нажатия что-то попадает в файл? (если долго отвечать, толкните, пожалуйста, в нужную литературную сторону) |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Hagrael, по хорошему, в современных ОС все устройства выглядят как файлы (в windows они имеют путь вида \\\\.\filename). К ним применимы 3 вида действий: чтение, запись и ioctl. Кроме устройств и "обычных файлов" есть еще сокеты, каналы и именованные каналы. Консоль скорее всего в Windows реализуется через канал (см CreatePipe). Эмулятор консоли создает каналы и передает их как открытые файлы в консольное приложение при запуске. Данные которые приходят с клавиатуры отправляются в канал, а данные записываемые приложением - читаются эмулятором и рисуются в окне.
|
|||
|
||||
| Hagrael |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 26.6.2011 Репутация: нет Всего: нет |
bsa, все это сложно, думаю, стоит отложить этот вопрос до прочтения книги.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Hagrael, проще говоря, далеко не каждый файл лежит на диске. Устройства выглядят, как файлы. Но фактически ни на каком диске не лежат. Просто когда ты открываешь подобный файл система получает сигнал и связывает функции read/write/ioctl с драйвером конкретного устройства.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |