информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Портрет посетителяГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Notepad++ полгода раздавал зараженные... 
 Китайский прорыв из ESXi 
 С наступающим 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
опять SetStdHandle 10.01.04 19:19  
Автор: crazy_assembly Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Помогите перенаправить вывод от printf'а в stdout в локальной программе в пайп....
вот код, который не работает. Хендл стдаут получается, но не устанавливается.
на консоль после установки нового хендла идет вывод.

HANDLE hStdOut;
HANDLE hInReadPipe,hInWritePipe;
SECURITY_ATTRIBUTES PipeAttr;

PipeAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
PipeAttr.lpSecurityDescriptor = 0;
PipeAttr.bInheritHandle = 1;

if (!CreatePipe(&hInReadPipe,&hInWritePipe,&PipeAttr,0)) {
printf("Can't create 'In' pipe (error %d)\n",GetLastError());
goto ProcessErrors;
}

hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hStdOut == INVALID_HANDLE_VALUE ) {
printf("Error GetStdHandle!\n");
goto ProcessErrors;
}
if (!SetStdHandle(STD_OUTPUT_HANDLE,hInWritePipe)) {
printf("Cannot change stdoutput!\n");
goto ProcessErrors;
}

printf("This message you must NOT view!!\n");

SetStdHandle(STD_OUTPUT_HANDLE,hStdOut);
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach