Я пишу приложение на C ++, и мне нужно прочитать результат системной команды.
Я использую popen ()
примерно так, как показано здесь:
const int MAX_BUFFER = 2048;
string cmd="ls -l";
char buffer[MAX_BUFFER];
FILE *stream = popen(cmd.c_str(), "r");
if (stream){
while (!feof(stream))
{
if (fgets(buffer, MAX_BUFFER, stream) != NULL)
{
//here is all my code
}
}
pclose(stream);
}
Я пытался переписать это по-другому. Я видел несколько нестандартных решений, например:
FILE *myfile;
std::fstream fileStream(myfile);
std::string mystring;
while(std::getline(myfile,mystring))
{
// .... Here I do what I need
}
Мой компилятор не принимает это.
Как я могу читать из popen
на C ++?