Re[2]: Как перенаправить стандатртые потоки?
От: Аноним  
Дата: 17.12.05 19:14
Оценка:
Здравствуйте, s_viy, Вы писали:

_>Обычно перенаправление ввода-вывода производиться при запуске процесса. В Win32 — это CreateProcess. При вызове можно указать дескрипторы для stdin stdout и stderr. HANDLE используется любой, но я обычно использую неименованые каналы (pipes) см. CreatePipe


Спасибо, посмотрел каналы, разобрался, но цели так и не добился. Если Вас не затруднит, разъясните, пожайлуста следующие моменты.

1. Допустим, я создал трубу. Хендлы назвал h_read и h_end. Какие мне надо ставть SECURITY_ATTRIBUTES, и что это такое?

2. Я написал:
SetStdHandle(STD_OUTPUT_HANDLE, h_write);

Означает ли это, что теперь весь стандартный вывод будет идти по этой трубе?

3. Я написал
std::cout << "Hello!";

Означает ли это, что я направил "Hello" в стандартный вывод?

4. Допустим, для варианта с CreateProcess все ясно. Но теперь я пишу
system("dir");

Как заставить вывод этой комманды идти не в консоль (которая сразу создается и пропадает), а идти в мою трубу. Когда я делал консоль сам (AllocConsole()), все порожденные процессы писали в мою консоль, как заставить их не создавать свою консоль, а писать в мою трубу?

Буду очень благодарен за ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.