Команды консоли Linux в C ++ (компилятор gcc) - PullRequest
3 голосов
/ 14 ноября 2010

Как я могу дать команды консоли Linux (Ubuntu) из моей программы на c ++ и присвоить значение, которое моя команда сообщает, строковой переменной?Пожалуйста, приведите пример, в котором программа передает в консоль простую команду "uname -a" и записывает результат.

Извините за мой плохой английский, я его очень мало знаюЯ был бы очень рад, если кто-то напишет свой ответ на русском языке (если это разрешено).Я искал ответ на свой вопрос на российских ресурсах, но ничего не нашел, ты моя последняя надежда.

Ответы [ 2 ]

3 голосов
/ 14 ноября 2010

Вам нужна команда popen.Вы можете получить информацию об этом, набрав man popen в вашей оболочке;если ваш дистрибутив Linux работает на русском языке, он должен отображать информацию о нем на русском языке.

По сути, popen просто открывает «файл» (поток), с которым вы можете работать так же, как с обычнымфайл.Вот пример того, как это можно использовать:

#include <stdio.h>
int main()
{
  FILE *f;
  char stuff[100];
  f = popen("uname -a", "r");
  fgets(stuff, 100, f);
  printf("%s", stuff);
  pclose(f);
}

Приведенный выше код не имеет никакой обработки ошибок;Вы должны вставить соответствующие проверки после прочтения и понимания полной страницы руководства ( rus ).

1 голос
/ 14 ноября 2010

Найдите русскоязычные ресурсы, которые объясняют рутину библиотеки popen (3).Вам нужно будет использовать команду popen для запуска команды, а затем прочитать канал, чтобы получить вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...