Бронирование турбазы доступно на сайте http://mirturbaz.ru [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Профессиональное » C / C++ / Qt » Перенаправляем стандартные потоки ввода/вывода (Перенаправляем потоки ввода/вывода средствами WinAPI)
Перенаправляем стандартные потоки ввода/вывода
IGGGORRREKKKДата: Понедельник, 12.10.2009, 18:56 | Сообщение # 1
Студент
Группа: Деловоды
Сообщений: 76
Репутация: 10
Статус: Offline
Вопрос:
Как перенаправить стандартные потоки ввода/вывода в приложении средствами WinAPI?

Неправильное решение:
Я решил посмотреть электронные лекции, которые нам выдают. Тема :"Стандартные потоки". При рассмотрении функций WinAPI там упоминается функция SetStdHandle(). Также "как-бы" дано задание открыть файл и перенаправить в него поток вывода. Решение предлагается следующее:

HANDLE hFile = CreateFile("myfile.txt",
GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
SetStdHandle(STD_OUTPUT_HANDLE, hFile);

Я решил этим воспользоваться. Сделал копипаст, дописал в конце printf("Hello world") и подумал, что все. Не все так просто)) Оказывается это не работает. То есть человек, писавший лекции, сам мало, что в понимает.Потыкавшись несколько раз, просмотрев вдвое больше раз MSDN(2005-статья SetStdHandle), я так и не понял, почему же то, что написано в лекции не работает. Ладно, идем в Bing, ищем решение.
Оно находится по следующему адресу:
http://www.rsdn.ru/forum/winapi/1547519.flat.aspx
Также дано краткое объяснение проблемы:
Проблема в том, что при создании процесса создается HANDLE’s стандартных потоков и их дескрипторы (1,2 и 3). В начале они совпадают, но SetStdHandle переопределяет только HANDLE’s.

После чтения материала и штурма MSDN по поводу подробного механизма работы кода, который дан на RSDN. Получаем, что наше решение должен выглядеть следующим образом:

HANDLE hFile = CreateFile(TEXT("myfile.txt"),
GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
HANDLE hOldStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetStdHandle(STD_OUTPUT_HANDLE, hFile);
int old =_dup(1);
int newDescr = _open_osfhandle((intptr_t)hFile, _O_APPEND );
_dup2(newDescr, 1);
printf("Hello world");

Работает)



http://lepeshkin.wordpress.com
http://twitter.com/ilepeshkin
 
COBAДата: Вторник, 13.10.2009, 18:53 | Сообщение # 2
Великий админ
Группа: Суровые Одмины
Сообщений: 171
Репутация: 12
Статус: Offline
Спасибо, что поделился!) критик лекций и исследователь прямо))


Без риска победив, без славы торжествуешь...
 
IGGGORRREKKKДата: Вторник, 13.10.2009, 19:51 | Сообщение # 3
Студент
Группа: Деловоды
Сообщений: 76
Репутация: 10
Статус: Offline
Тебе ха-ха, а раз 20 все перекомпиливал и дотошно исследовал создаваемый файл) Сычев - #####. Он сам интересно испытывает на работоспособность то, что у него в лекциях или просто тупо переводит MSDN(да еще и неправильно)?


http://lepeshkin.wordpress.com
http://twitter.com/ilepeshkin
 
COBAДата: Вторник, 13.10.2009, 21:50 | Сообщение # 4
Великий админ
Группа: Суровые Одмины
Сообщений: 171
Репутация: 12
Статус: Offline
Quote (IGGGORRREKKK)
Сычев - #####. Он сам интересно испытывает на работоспособность то, что у него в лекциях или просто тупо переводит MSDN(да еще и неправильно)?

Он и так вон сколько лекций понаделал)) и ты сколько по ним учишь..^^ просто ошибся.. замечаешь только плохое типа?))

зато теперь если столкнёмся, будем знать в чём проблема..



Без риска победив, без славы торжествуешь...
 
IGGGORRREKKKДата: Среда, 14.10.2009, 16:41 | Сообщение # 5
Студент
Группа: Деловоды
Сообщений: 76
Репутация: 10
Статус: Offline
Quote (COBA)
и ты сколько по ним учишь..

первый раз решил внимательно и подробно прочитать)
Quote (COBA)
Он и так вон сколько лекций понаделал)
Он их делал не с нуля и не за один день. Конкретно по курсу ОС он пользовался лекциями INTUIT. Примеры кода и описание функций он копипастит из MSDN и потом переводит комментарии(как видим не очень удачно)).
К тому же эта ошибка не из разряда случайных опечаток или пропущенных слов(если бы это было так, я бы и внимание не обратил))))
P.S. Честно говоря я когда смотрел описание функции тоже подумал, что она должна работать и по смыслу перевод верный, а на самом деле в WinAPI все немного по-другому устроено.)



http://lepeshkin.wordpress.com
http://twitter.com/ilepeshkin
 
CocaineoДата: Среда, 09.11.2016, 18:37 | Сообщение # 6
Дилетант
Группа: Пользователи
Сообщений: 28
Репутация: 0
Статус: Offline
Продаем наркотики: спайс, кокаин, марихуану. Недорого.
Пишите на email oxanat5@mail.ru
.

Добавлено (09.11.2016, 18:37)
---------------------------------------------
Продаем наркотики: спайс, кокаин, марихуану. Недорого.
Пишите на email oxanat5@mail.ru
.


Спайс, марихуана, кокаин - oxanat5@mail.ru
 
ПиздопидорДата: Вторник, 29.11.2016, 16:07 | Сообщение # 7
Скажи админу придумать ранг
Группа: Активные пользователи
Сообщений: 192
Репутация: 0
Статус: Offline
Ты хочешь научиться улыбаться дёснами?
 
JerrybetДата: Среда, 25.01.2017, 23:49 | Сообщение # 8
Студент
Группа: Пользователи
Сообщений: 70
Репутация: 0
Статус: Offline
<a href="http://senakdiamond.com/sitemap.xml">Sitemap</a>

<a href="http://senakdiamond.com/massage/uroki-video-massazha-vlagalishcha">http://senakdiamond.com/massage/uroki-video-massazha-vlagalishcha</a>
<a href="http://senakdiamond.com/group/gruppovukha-po-prnuzhdeniiu-russkoe">http://senakdiamond.com/group/gruppovukha-po-prnuzhdeniiu-russkoe</a>
<a href="http://senakdiamond.com/massage/porno-video-s-salona-massazha">http://senakdiamond.com/massage/porno-video-s-salona-massazha</a>
<a href="http://senakdiamond.com/massage/massazh-vlagalishcha-rukami-smotret-video">http://senakdiamond.com/massage/massazh-vlagalishcha-rukami-smotret-video</a>
<a href="http://senakdiamond.com/massage/smotret-massazh-skrytaia-kamera-porno-chekhiia">http://senakdiamond.com/massage/smotret-massazh-skrytaia-kamera-porno-chekhiia</a>
<a href="http://senakdiamond.com/group/zverskaia-gruppovukha">http://senakdiamond.com/group/zverskaia-gruppovukha</a>
<a href="http://senakdiamond.com/massage/pornofoto-intimnyi-massazh-ginekologicheskii-massazh">http://senakdiamond.com/massage/pornofoto-intimnyi-massazh-ginekologicheskii-massazh</a>
<a href="http://senakdiamond.com/massage/kak-pravilno-sdelat-massazh-perekhodiashchii-v-seks">http://senakdiamond.com/massage/kak-pravilno-sdelat-massazh-perekhodiashchii-v-seks</a>
<a href="http://senakdiamond.com/massage/pornosaity-massazha-russkikh">http://senakdiamond.com/massage/pornosaity-massazha-russkikh</a>
<a href="http://senakdiamond.com/massage/smotret-vensenskii-massazh-porno">http://senakdiamond.com/massage/smotret-vensenskii-massazh-porno</a>
<a href="http://senakdiamond.com/%D1%81umshot/skachat-narezku-sperma-v-rot-s-torrent">http://senakdiamond.com/%D1%81umshot/skachat-narezku-sperma-v-rot-s-torrent</a>
<a href="http://senakdiamond.com/%D1%81umshot/pochemu-sperma-vyshla-s-kroviu-pochemu">http://senakdiamond.com/%D1%81umshot/pochemu-sperma-vyshla-s-kroviu-pochemu</a>
<a href="http://senakdiamond.com/massage/rasslabliaiushchii-massazh-dlia-russkikh-devushek-v-massazhnykh-salonakh-video">http://senakdiamond.com/massage/rasslabliaiushchii-massazh-dlia-russkikh-devushek-v-massazhnykh-salonakh-video</a>
<a href="http://senakdiamond.com/massage/porno-rolik-skrytaia-kamera-massazh">http://senakdiamond.com/massage/porno-rolik-skrytaia-kamera-massazh</a>
<a href="http://senakdiamond.com/%D1%81umshot/video-sperma-pornukha">http://senakdiamond.com/%D1%81umshot/video-sperma-pornukha</a>
<a href="http://senakdiamond.com/massage/kruklosutochnyi-salon-intim-massazha-ufa">http://senakdiamond.com/massage/kruklosutochnyi-salon-intim-massazha-ufa</a>
<a href="http://senakdiamond.com/%D1%81umshot/chto-nuzhno-sest-muzhchine-chtoby-sperma-byla-sladkaia">http://senakdiamond.com/%D1%81umshot/chto-nuzhno-sest-muzhchine-chtoby-sperma-byla-sladkaia</a>
<a href="http://senakdiamond.com/%D1%81umshot/za-kakoe-vremia-vosstanovaetsia-sperma-posle-operatsii-na-varikotseli">http://senakdiamond.com/%D1%81umshot/za-kakoe-vremia-vosstanovaetsia-sperma-posle-operatsii-na-varikotseli</a>
<a href="http://senakdiamond.com/massage/porno-film-massazhistka-smotret">http://senakdiamond.com/massage/porno-film-massazhistka-smotret</a>
<a href="http://senakdiamond.com/%D1%81umshot/sperma-na-litse-mp4">http://senakdiamond.com/%D1%81umshot/sperma-na-litse-mp4</a>
<a href="http://senakdiamond.com/%D1%81umshot/sperma-prinosit-li-polzu-organizme-zhenshchine">http://senakdiamond.com/%D1%81umshot/sperma-prinosit-li-polzu-organizme-zhenshchine</a>
<a href="http://senakdiamond.com/%D1%81umshot/liazhet-sperma-s-pizdy">http://senakdiamond.com/%D1%81umshot/liazhet-sperma-s-pizdy</a>
<a href="http://senakdiamond.com/%D1%81umshot/paren-sperma-nosom">http://senakdiamond.com/%D1%81umshot/paren-sperma-nosom</a>
<a href="http://senakdiamond.com/group/gruppovukha-v-bikini">http://senakdiamond.com/group/gruppovukha-v-bikini</a>
<a href="http://senakdiamond.com/%D1%81umshot/u-muzhchina-sperma-s-kroviu">http://senakdiamond.com/%D1%81umshot/u-muzhchina-sperma-s-kroviu</a>
<a href="http://senakdiamond.com/massage/skrytoe-kamera-porno-massazhnom-salone">http://senakdiamond.com/massage/skrytoe-kamera-porno-massazhnom-salone</a>
<a href="http://senakdiamond.com/%D1%81umshot/pochemu-posle-alkogolia-sperma-ne-takaia">http://senakdiamond.com/%D1%81umshot/pochemu-posle-alkogolia-sperma-ne-takaia</a>
<a href="http://senakdiamond.com/%D1%81umshot/pri-kakom-zabolevanii-vo-vremia-polovrgo-akta-sperma-ne-vydeliaetsia">http://senakdiamond.com/%D1%81umshot/pri-kakom-zabolevanii-vo-vremia-polovrgo-akta-sperma-ne-vydeliaetsia</a>
<a href="http://senakdiamond.com/massage/smotret-intimnyi-massazh-seks">http://senakdiamond.com/massage/smotret-intimnyi-massazh-seks</a>
<a href="http://senakdiamond.com/massage/smotret-porno-krasivye-massazhistki">http://senakdiamond.com/massage/smotret-porno-krasivye-massazhistki</a>
<a href="http://senakdiamond.com/%D1%81umshot/muzhskaia-sperma-s-nepriiatnym-zapakhom">http://senakdiamond.com/%D1%81umshot/muzhskaia-sperma-s-nepriiatnym-zapakhom</a>
<a href="http://senakdiamond.com/massage/porno-foto-seks-s-massazhem">http://senakdiamond.com/massage/porno-foto-seks-s-massazhem</a>
<a href="http://senakdiamond.com/%D1%81umshot/strapon-sperma-video">http://senakdiamond.com/%D1%81umshot/strapon-sperma-video</a>
<a href="http://senakdiamond.com/%D1%81umshot/sperma-ne-vyrabatyvaettsa">http://senakdiamond.com/%D1%81umshot/sperma-ne-vyrabatyvaettsa</a>
<a href="http://senakdiamond.com/%D1%81umshot/sperma-foto-razkazy">http://senakdiamond.com/%D1%81umshot/sperma-foto-razkazy</a>
<a href="http://senakdiamond.com/massage/eroticheskii-bodi-massazh-video">http://senakdiamond.com/massage/eroticheskii-bodi-massazh-video</a>
<a href="http://senakdiamond.com/massage/seks-i-massazh-v-pattaie-video">http://senakdiamond.com/massage/seks-i-massazh-v-pattaie-video</a>
<a href="http://senakdiamond.com/%D1%81umshot/skachat-zhenskaia-sperma-mp4">http://senakdiamond.com/%D1%81umshot/skachat-zhenskaia-sperma-mp4</a>
<a href="http://senakdiamond.com/massage/super-porno-hd-massazh">http://senakdiamond.com/massage/super-porno-hd-massazh</a>
<a href="http://senakdiamond.com/group/publichnaia-eblia-tolpoi">http://senakdiamond.com/group/publichnaia-eblia-tolpoi</a>
<a href="http://senakdiamond.com/%D1%81umshot/prislannoe-video-chastnoe-sperma-v-rot">http://senakdiamond.com/%D1%81umshot/prislannoe-video-chastnoe-sperma-v-rot</a>
<a href="http://senakdiamond.com/massage/massazh-ne-salon-intim">http://senakdiamond.com/massage/massazh-ne-salon-intim</a>
<a href="http://senakdiamond.com/%D1%81umshot/plokho-esli-sperma-prozrachnaia">http://senakdiamond.com/%D1%81umshot/plokho-esli-sperma-prozrachnaia</a>
<a href="http://senakdiamond.com/group/ebut-starykh-tolpoi">http://senakdiamond.com/group/ebut-starykh-tolpoi</a>
<a href="http://senakdiamond.com/%D1%81umshot/sperma-s-ottenkom-zhioltogo">http://senakdiamond.com/%D1%81umshot/sperma-s-ottenkom-zhioltogo</a>
<a href="http://senakdiamond.com/group/samaia-bolshaia-gruppovukha-v-mire-3-smotret-onlain-khiuston">http://senakdiamond.com/group/samaia-bolshaia-gruppovukha-v-mire-3-smotret-onlain-khiuston</a>
<a href="http://senakdiamond.com/massage/seks-massazh-s-russkimi-mamochkami">http://senakdiamond.com/massage/seks-massazh-s-russkimi-mamochkami</a>
<a href="http://senakdiamond.com/%D1%81umshot/sperma-v-glaz-foto">http://senakdiamond.com/%D1%81umshot/sperma-v-glaz-foto</a>
<a href="http://senakdiamond.com/massage/seksualnyi-massazh-popy-video">http://senakdiamond.com/massage/seksualnyi-massazh-popy-video</a>
<a href="http://senakdiamond.com/massage/kartinki-seks-massazh-muzhchine">http://senakdiamond.com/massage/kartinki-seks-massazh-muzhchine</a>


<a href="http://senakdiamond.com/sitemap.xml">Sitemap</a>
 
Форум » Профессиональное » C / C++ / Qt » Перенаправляем стандартные потоки ввода/вывода (Перенаправляем потоки ввода/вывода средствами WinAPI)
Страница 1 из 11
Поиск: