Как вывести в буферную консоль вывод? - PullRequest
1 голос
/ 10 ноября 2010

Как вывести в буферную консоль вывод?Например, мне просто нужен вывод команды "ipconfig -all", и я хочу сохранить эту информацию в каком-то буфере?

Ответы [ 2 ]

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

Вы можете записать вывод консольного приложения в файл (по крайней мере, в Windows), используя параметр>.

Например, для вашего случая вы должны написать ipconfig -all> C: \ output.txt, чтобы записать информацию в output.txt.

В качестве альтернативы, если вы делаете это в коде, вы можете создать процесс, который запускает ipconfig, и прочитать стандартный вывод, используя извилистые методы Microsoft http://msdn.microsoft.com/en-us/library/ms682499%28VS.85%29.aspx, или среду приложения, такую ​​как Qt, которая упрощает управление процессами http://qt.nokia.com/products/ - см. QProcess: http://doc.qt.nokia.com/4.3/qprocess.html#readAllStandardOutput

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

Кажется, у вас проблема XY

Что вы действительно хотите сделать - это захватить вывод другой команды. Вся «буферная» часть - ваш первый удар при ответе. Это не поможет вам, и на самом деле вы застряли в неправильном направлении.

badgerr предлагает несколько решений, но наиболее распространенным является popen("ifconfig -a", "r"). Это не возвращает буфер, он возвращает FILE*, который вы можете передать fread. Это функция POSIX, доступная в Linux.

В Windows вы вызываете CreateProcess и передаете структуру STARTUPINFO, содержащую dwFlags=STARTF_USESTDHANDLES и hStdOutput=ResultOfCreatePipe.

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