Я пишу приложение на 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);
}
Iпытался переписать это по-другому.Я видел некоторые нестандартные решения, такие как:
FILE *myfile;
std::fstream fileStream(myfile);
std::string mystring;
while(std::getline(myfile,mystring))
{
// .... Here I do what I need
}
Мой компилятор не принимает это, хотя.
Как я могу читать из popen
в C ++?