Форум программистов, компьютерный форум CyberForum.ru

Получение вывода другой программы - C++

Войти
Регистрация
Восстановить пароль
 
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
28.09.2012, 17:13     Получение вывода другой программы #1
Требуется запустить консольное приложение и получить текст, который оно вывело в stdout и stderr. Скажите, пожалуйста, как это можно сделать?

Я вижу только один вариант - перенаправлять стандартные потоки в файлы. Сомневаюсь, что это самый быстрый.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2012, 17:13     Получение вывода другой программы
Посмотрите здесь:

C++ Текст программы для вывода массива
Получения вывода стороней программы C++
C++ Получение каталога выполнения текущей программы
Аварийное завершение программы, ошибка в функции вывода. C++
Открытие файла другой программы из программы.Косяк. C++
Получение из другой формы ТStringList C++
C++ кориктеровка программы вывода пароля
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1740 / 1083 / 70
Регистрация: 13.09.2011
Сообщений: 3,104
28.09.2012, 17:17     Получение вывода другой программы #2
В какой системе дело происходит? В posix можно в пайпы перенаправить, будет быстро.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
28.09.2012, 17:19  [ТС]     Получение вывода другой программы #3
Windows.

Если из обоих потоков слишком сложно, можно только из stdout.
NoMasters
Псевдослучайный
1740 / 1083 / 70
Регистрация: 13.09.2011
Сообщений: 3,104
28.09.2012, 17:35     Получение вывода другой программы #4
Там есть _popen, который почти как расово верный popen, но только с подчёркиванием и от мелкософта. Но он ловит только stdout
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
28.09.2012, 17:53     Получение вывода другой программы #5
Можно виндовыми средствами создать пайп и получить для него HFILE, читать через ReadFile()
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
29.09.2012, 15:05  [ТС]     Получение вывода другой программы #6
NoMasters, спасибо, popen/pclose помогли! В Dev-C++, в отличии от Студии, даже подчеркивать ничего не нужно.

stderr он, кстати, тоже ловит, причем все сообщения из него выводятся ДО сообщений из stdout. Т. е.
C
1
2
3
fprintf(stdout, "2");
fprintf(stderr, "1");
fprintf(stdout, "3");
выводит "123".
Цитата Сообщение от Герц Посмотреть сообщение
Можно виндовыми средствами создать пайп и получить для него HFILE, читать через ReadFile()
Можно подробнее? Просто интересно.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.09.2012, 15:23     Получение вывода другой программы #7
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
Можно подробнее? Просто интересно.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2012, 17:10     Получение вывода другой программы
Еще ссылки по теме:

C++ Ошибка компиляции модульной программы ввода вывода
C++ Завершение программы после вывода результата
Повторное выполнение программы после вывода решения C++
C++ Как узнать кодировку вывода в консоль во время выполнения программы?

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

Или воспользуйтесь поиском по форуму:
NoMasters
Псевдослучайный
1740 / 1083 / 70
Регистрация: 13.09.2011
Сообщений: 3,104
29.09.2012, 17:10     Получение вывода другой программы #8
Цитата Сообщение от Кот Ангенс Посмотреть сообщение
stderr он, кстати, тоже ловит, причем все сообщения из него выводятся ДО сообщений из stdout
Просто вывод в stderr не буферизируется.
Yandex
Объявления
29.09.2012, 17:10     Получение вывода другой программы
Ответ Создать тему
Опции темы

Текущее время: 13:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru