Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SoulRoot
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 19
#1

Как получить результат выполнение system()? - C++

23.01.2014, 16:36. Просмотров 1201. Ответов 9
Метки нет (Все метки)

Добрый день. Как мне получить результат выполнения команды system() в какую, нибудь переменную?

Добавлено через 24 секунды
К примеру получить вывод system("dir");

OS: Windows
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 16:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как получить результат выполнение system()? (C++):

Как вывести результат из system()? - C++
как вывести результат из system() в переменную?:wall: P.s вариант вывести в файл а потом читать из него не предлагайте

Как в C++ получить результат исполнения внешней команды - C++
Вообщем я пишу простейший код: #include <stdlib.h> #include <iostream> using namespace std; int main () { ...

Можно узнать результат выполнения system()? - C++
Можно узнать результат выполнения system()? Например, system("abc") вернёт, что код не выполнился, т.к. нет такой команды, а system("MD...

Получить вывод команды оболочки - функция, обратная system() - C++
Доброго времени суток, товарищи! Расскажите, пожалуйста, существует ли в С++ функция, обратная по действию system(). То есть, если...

не могу получить желаемый результат в программе - C++
Сама программа компилируется и выводит желаемое количество чисел. но при условии прекратить задачу продолжает выводить числа. Не выводит...

на С++ получить результат аналогичный команде start %1 в cmd - C++
на С++ получить такой же результат как после работы скрипта на cmd (файл 1.cmd): @echo off start "" %1 exit Т.е. если...

9
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
23.01.2014, 16:42 #2
C++
1
2
3
4
5
6
#include <iostream>
using namespace std;
int main() {
system("dir");
system("pause");
}
0
SoulRoot
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 19
23.01.2014, 16:49  [ТС] #3
Цитата Сообщение от Esecman Посмотреть сообщение
C++
1
2
3
4
5
6
#include <iostream>
using namespace std;
int main() {
system("dir");
system("pause");
}
Прошу прощения. Не консольное приложение.
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
23.01.2014, 16:58 #4
а какой сорс? Пример кидайте ))
просто добавьте
C++
1
2
system("dir");
system("pause"); // для задержки.
0
SoulRoot
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 19
23.01.2014, 17:00  [ТС] #5
Задача стоит по роботе программы с телнетом или ССШ.
Вот мне нужно знать как сервер отвечает на мои запросы.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7512 / 4644 / 700
Регистрация: 29.11.2010
Сообщений: 12,680
23.01.2014, 17:17 #6
Использовать перенаправление результата в текстовый файл и считывать с него.

Добавлено через 1 минуту
C++
1
system("dir >> info.txt");
каждый раз будет перезаписывать
C++
1
system("dir > info.txt");
дозапись в конец
0
SoulRoot
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 19
23.01.2014, 17:18  [ТС] #7
Спасибо. Я думал есть лучше варианты.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7512 / 4644 / 700
Регистрация: 29.11.2010
Сообщений: 12,680
23.01.2014, 17:19 #8
Чем этот вариант плох?
Обычное считывание информации или логирование.
0
timm_s
5 / 5 / 3
Регистрация: 17.11.2014
Сообщений: 52
22.03.2016, 18:36 #9
Может не быть доступа на создание файла в директории.
Вот рабочий вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
 
 
main( )
{
        char *cmd = "ls -l";
        char buf[BUFSIZ];
        FILE *ptr;
 
        if ((ptr = popen(cmd, "r")) != NULL)
                while (fgets(buf, BUFSIZ, ptr) != NULL)
                        (void) printf("%s", buf);
                (void) pclose(ptr);
        return 0;
}
0
avgoor
962 / 596 / 130
Регистрация: 05.12.2015
Сообщений: 1,681
22.03.2016, 18:45 #10
SoulRoot
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
39
40
41
42
43
44
45
46
HANDLE hCin[2];
HANDLE hCout[2];
 
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
 
CreatePipe(&hCin[0], &hCin[1], &sa, 0);
SetHandleInformation(hCin[1], HANDLE_FLAG_INHERIT, 0);
CreatePipe(&hCout[0], &hCout[1], &sa, 0);
SetHandleInformation(hCout[0], HANDLE_FLAG_INHERIT, 0);
 
PROCESS_INFORMATION pi;
 
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.hStdError = hCout[1];
si.hStdOutput = hCout[1];
si.hStdInput = hCin[0];
si.wShowWindow = SW_HIDE;
 
BOOL bProc = CreateProcess(NULL, L"solution.exe", NULL, NULL, TRUE, CREATE_UNICODE_ENVIRONMENT, NULL, NULL, &si, &pi);
// если bProc==false - процесс не запустился.
CloseHandle(hCout[1]);
CloseHandle(hCin[0]);
 
 
//Здесь пишем то, что хотим отправить дочернему процессу WriteFile(hCin[1]...
 
 
DWORD dwExit = STILL_ACTIVE;
do
{
    GetExitCodeProcess(pi.hProcess, &dwExit);
} while (dwExit == STILL_ACTIVE);
 
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
 
//Здесь читаем из дочернего процесса ReadFilr(hCout[0]
 
CloseHandle(hCout[0]);
CloseHandle(hCin[1]);
0
22.03.2016, 18:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2016, 18:45
Привет! Вот еще темы с ответами:

необходимо получить результат 6 имея следующие данные - C++
int a; a=3.7+2; как получить 6????

Расставить среди цифр знаки арифметических операций и скобки, чтобы получить необходимый результат - C++
Собственно, вот задача: Вводится строка не более чем из 6 цифр и некоторое целое число R. Расставить знаки арифметических операций...

Получить результат выполнения команды "system" - C++ WinAPI
нужно получить результат команды system,например system(&quot;pause&quot;),нужно сделать так,чтобы выводимая в консоль строка(&quot;нажмите любую кнопку...

Как получить такой результат? Результат на Картинке - HTML, CSS
Как сделать так чтобы лого было по середине, а текст по бокам....все как на картинке? Что написать в HTML и CSS? Заранее спасибо)


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

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

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