Можно ли сохранить вывод системного вызова в Windows? - PullRequest
2 голосов
/ 30 июля 2009

Е.Г .: Я хочу сохранить вывод system("dir");

Ответы [ 3 ]

3 голосов
/ 30 июля 2009

Да, посмотрите на захват стандартного вывода из CreateProcess:

Обратите внимание, что dir - это встроенная команда в DOS. Поэтому вам нужно выполнить что-то вроде следующей системной команды:

  • cmd.exe /c dir c:\path\to\directory

, а не просто позвонить dir. Введите cmd /? для получения дополнительной информации о параметре /c.

2 голосов
/ 30 июля 2009

Вы можете использовать перенаправление в файл (system ("dir> file")), прочитать этот файл и удалить его или перейти по пути без имени, как в Unix, - вызвать CreatePipe (), чтобы создать канал, и присоединить его как поток ввода / вывода в структуре PROCESS_INFORMATION и передать эту структуру в CreateProcess ().

0 голосов
/ 30 июля 2009

POSIX имеет функцию popen (), и я думаю, что в Windows есть нечто подобное, называемое _popen ().

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