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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
agronomchek
0 / 0 / 0
Регистрация: 29.08.2010
Сообщений: 18
#1

Получить вывод команды оболочки - функция, обратная system() - C++

06.03.2012, 12:42. Просмотров 1527. Ответов 1
Метки нет (Все метки)

Доброго времени суток, товарищи!

Расскажите, пожалуйста, существует ли в С++ функция, обратная по действию system(). То есть, если system() отправляет команду терминалу, то есть ли функция, считывающая ответ терминала на эту команду? Например, в символьный массив или строковую переменную?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 12:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить вывод команды оболочки - функция, обратная system() (C++):

Не работают команды system() - C++
#include<cstdlib> #include<iostream> #include<windows.h> int main(int a, char* b) { ... system("cls"); system("pause"); ......

Функция, обратная xor - C++
Всем привет! Подскажите, пожалуйста, как обратить xor. Заранее спасибо.

Иероглифы при записи в файл результата выполнения команды system - C++
Собственно проблема возникает при наличии русских букв в результате выполнения команды system("echo 'Привет' > text.txt"). Приложение не...

функция system() - C++
Собственно, есть такая стандартная функция system(), она определена в stdlib.h и её прототип int system(const char *str); Краткое...

Функция system - C++
Здравствуйте! Такой вот вопрос: есть функция system, которая может команды cmd выполнять, но при этом когда она вызывается, появляется и...

функция команды return sqrt - C++
//Подключение заголовочных файлов #include <iostream> //ввод вывод #include <math.h> //матем. функции //Функция вычисления...

1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
06.03.2012, 14:01 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
В линуксе можно сделать так:
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
#include <stdio.h>
#include <stdlib.h>
 
int main (int argc, char* argv [])
{
    FILE* pipe;
 
    char buf [BUFSIZ];
 
    if (argc != 2)
    {
    fprintf (stderr, "Usage: %s COMMAND\n", argv [0]);
    exit (1);
    }
    
    printf ("Trying to execute command `%s'\n", argv [1]);
 
    if ((pipe = popen (argv [1], "r")) == NULL)
    {
    perror (argv [1]);
    exit (1);
    }
 
    while (fgets (buf, BUFSIZ, pipe) != NULL)
    printf ("Got line: %s", buf);
 
    if (ferror (pipe))
    perror (argv [1]);
 
    pclose (pipe);
 
    exit (0);
}
Открываем пайп и читаем из него как из файла.

Код
[nameless@desktop c]$ ./sample 'ls -l'
Trying to execute command `ls -l'
Got line: итого 32
Got line: -rw-rw-r--. 1 nameless nameless   527 марта  6 20:59 main.c
Got line: -rw-rw-r--. 1 nameless nameless   854 марта  6 18:27 main.c~
Got line: -rw-rw-r--. 1 nameless nameless  6768 марта  6 20:59 main.o
Got line: -rw-rw-r--. 1 nameless nameless   302 марта  2 13:05 Makefile
Got line: -rwxrwxr-x. 1 nameless nameless 10295 марта  6 20:59 sample
[nameless@desktop c]$
4
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2012, 14:01
Привет! Вот еще темы с ответами:

Использование команды system(); Без всяких окон (без dos и т.д) - C++
Вообще реально сделать чтобы обратиться к системе в фоновом режиме. Без отрытия dos. Без всякой командной строки. Просто чтоб запускал...

Функция передачи команды в cmd.exe - C++
Добрый день/вечер/утро, товарищи программисты! Мне бы хотелось написать программу (точнее, жалкое её подобие), которая бы открывала...

Функция system() стопорит программу - C++
в общем есть вот такая программа #include &lt;string&gt; #include &lt;windows.h&gt; using namespace std; int main() { ...

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


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

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

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