Captura saída de um comando passado em Unix/Linux - C++
Posted: 16 Jan 2021, 02:49
Passando um comando ls -ls e jogando o seu resultado/saída em uma variavel chamada texto usando um PIPE | , torneirinha fechada :
Code: Select all
#include <iostream>
using namespace std;
string pegaSaidaDe(string comandoPassado) {
string retornoObtido;
FILE * fluxo;
const int tamanho = 256;
char reservatorio[tamanho];
comandoPassado.append(" 2>&1");
fluxo = popen(comandoPassado.c_str(), "r");
if (fluxo) {
while (!feof(fluxo)){
if (fgets(reservatorio, tamanho, fluxo) != NULL){
retornoObtido.append(reservatorio);
}
}
pclose(fluxo);
}
return retornoObtido;
}
int main(){
string texto;
texto = pegaSaidaDe("ls -l");
cout << texto ;
return 1;
}