Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 4
1

Перенаправление стандартных потоков ввода/вывода для внешней программы

15.02.2011, 19:43. Просмотров 2043. Ответов 0
Метки нет (Все метки)

Я вот где-то прочитал как перенаправить стандартные потоки ввода/вывода на внешнюю программу в дос. Переделал код под winapi, но не работает. Прошу вас помочь. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <windows.h>
#include <stdio.h>
#include <string.h>
 
#define STD_IN      0
#define STD_OUT     1
 
#define PIPESIZE    4096
 
HANDLE hPipeIn, hPipeOut;
HANDLE sInHandle, sOutHandle;
HANDLE nInHandle, nOutHandle;
 
char buf [PIPESIZE];
 
void check (char *progName, char *input, char *output)
{
    DuplicateHandle(nInHandle, &sInHandle, NULL, NULL, NULL, NULL, NULL);
    DuplicateHandle(nOutHandle, &sOutHandle, NULL, NULL, NULL, NULL, NULL);
    CreatePipe(&hPipeIn, &hPipeOut, NULL, PIPESIZE);
    DuplicateHandle(hPipeIn, nInHandle, NULL, NULL, NULL, NULL, NULL);
    DuplicateHandle(hPipeOut, nOutHandle, NULL, NULL, NULL, NULL, NULL);
    nInHandle=hPipeIn;
    nOutHandle=hPipeOut;
    strcpy(buf, "dir\nexit\n");
    unsigned long btWrited;
    WriteConsole(hPipeOut, buf, strlen(buf), &btWrited, NULL);
    WriteConsole(sOutHandle, input, strlen(input), &btWrited, NULL);
    printf("Eta stroka ne vivoditsya na zapuskayemuyu programmu!!!\n");
    system(progName);
    return;
}
 
int main (void)
{
    check("cmd.exe", "cmd\n", NULL);
    return 0;
}
Прошу помочь.
Прочитал: http://ru2.halfos.ru/rdm2/articles/dupstd.html
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2011, 19:43
Ответы с готовыми решениями:

Проблема при замещении стандартных потоков ввода/вывода
Вместо замещения стандартных потоков ввода и вывода происходит обычный запуск программы...

Перехват стандартных потоков ввода-вывода
Здравствуйте. Проблема вот в чем: Имеется файл code.exe, который ожидает ввода двух чисел и...

Перевод стандартных потоков ввода/вывода в файлы
Интересует сея возможность.. Знаю про freopen с С файлами, но вот интересна такая возможность в...

GoogleTest. Тестирование потоков ввода/вывода для собственных классов
Доброго времени суток, форумчане! У меня есть класс, для которого я написал перегрузку оператора...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2011, 19:43

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Переопределение стандартных функций ввода/вывода
Доброго времени суток жители данного форума и гости ! Имеется задача сделать переопределение...

Перенаправление ввода-вывода
Как используя перенаправление ввода-вывода в каталоге first сохранить вывод команды ls с...

Перенаправление ввода/вывода
Здравствуйте, все! Есть несколько exe-файлов, которые надо прогнать через ряд тестов (дети писали...

Перенаправление ввода-вывода
Сабж собсно. Как? Нужно, чтобы поток ошибок направлялся в файл, а не светился юзерам на сайте....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.