|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.12.2011, 02:51 | #11 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Код:
|
|
02.01.2012, 16:34 | #12 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Лекарство было найдено!
Если кому интересно, то проблема была вот в чем: Немного лирики: Новый год прошёл в напряженной работе по поиску решения проблемы. Моя девушка начала волноваться, переживать, думая что у нас что-то не то. Девушкам же невозможно объяснить, что время - релизиться, а код крэшэт всю систему с синим экраном смерти. Ближе к 5 утра, я лежал в постели, смотрел в потолок, размышляя об IO-потоках. Как бы там нибыло, а все дороги ведут в Рим - к WINAPI. Не важно, явно ли вызывает WINAPI программист, или это делается в недрах crt библиотеки с++. Важно, что по сути... стоп... назад... Ещё раз: явно ли вызывает WINAPI программист, или это делается в недрах crt библиотеки с++. Вот здесь и крылась разгадка. Сейчас 16 на моих часах. Я опробовал лекарство, и это сработало. Итак, вот пример работающего кода: Код:
(и кстати, я не вполне понимал, зачем вообще создавать шаристые буфера, если нет причин наследоваться от родительских процессов) Доступ к нему имел только один родительский процесс. Однако чорт его знает, кто и как к нему обращается, через std::cin Или через stdin, когда пытается сделать эхо-отражение. В действительности, библиотечные функции самого языка(как и функции WINAPI) - лишь вершина айсберга, этой поистине нетривиальной технологии "ввода-вывода". А главные боевые действия осуществляющие ввод-вывод запрятаны очень глубоко в недрах операционной системы. Вывод данных через новый буфер осуществляется средствами самой ОСи. И нужно было быть готовым к тому, что вывод данных в буфер консоли будет осуществлен из какого то вообще левого процесса. Единственное, что осталось не понятным, это почему ОС не пофиксила факт монопольного использования буфера вывода консоли, при попытки поюзать его. Почему пользовательское приложение, используя винапи согласно документации умыдрилось уронить всю систему? Полагаю, это действительно баг разработчиков Windows, и не является проблемой пользовательского приложения. Последний раз редактировалось _Bers; 02.01.2012 в 18:31. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Баг или фича? (programmersforum) | Сtrl | О форуме и сайтах клуба | 7 | 05.09.2011 21:20 |
Потоки. Использование стандартного ввода–вывода. | Lazy_Bitch | Общие вопросы C/C++ | 1 | 05.05.2010 12:15 |
Перенаправление стандартного ввода/вывода в файл | Роман Радер | Общие вопросы C/C++ | 1 | 09.01.2010 18:34 |
Как сделать запрет ввода букв в поле для ввода input | zvezda_t | PHP | 1 | 27.12.2009 22:02 |
Баг Excel или я туплю? | Raf_19 | Microsoft Office Excel | 5 | 06.08.2008 16:39 |