Page 1 of 1

Captura saída de um comando passado em Unix/Linux - C++

Posted: 16 Jan 2021, 02:49
by javanunes
Passando um comando ls -ls e jogando o seu resultado/saída em uma variavel chamada texto usando um PIPE | , torneirinha fechada :D :

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;   
}