Последний результат команды CMD не может быть пойман?
Я пытаюсь выполнить команду в командной строке. Эта команда отправляется с языка c++. Если я пытаюсь выполнить 3 команды, то выполняется только 2, а третья не возвращается в c++.
Вот что я пытаюсь выполнить:
wmic diskdrive get serialnumber& wmic cpu get ProcessorId& wmic os get SerialNumber& echo %username%
Вот фрагмент кода перехвата возврата из CMD my prog:
cmd.append("2>&1"); std::string data; FILE * stream; const int char_length= 256; char buffer[char_length]; stream = popen(cmd.c_str(), "r"); if (stream) { while (!feof(stream)) if (fgets(buffer, char_length, stream) != NULL) data.append(buffer); pclose(stream); } return data;
Возвращаемый код содержит информацию о первой команде 3. Я думал, что есть какая-то проблема с последней командой, но при попытке поменять команду последняя команда также не была поймана программой.
Что я уже пробовал:
Я обошел проблему, сделав последнюю команду бесполезной (что мне не нужно), я сделал это:
echo
std::string cmd("wmic diskdrive get serialnumber& wmic cpu get ProcessorId& echo %username%& wmic os get SerialNumber& echo");
я думаю, что для этого должно быть решение, заранее спасибо за помощь