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

Você está cansado daqueles exemplos pra lá de complexos , abstratos e escrotos que só os nerds da programação entendem ? Parece mais que a pessoa dá exemplos complexos só para você dizer: -- Nossa como você é foda! E o pior, você vai compilar e sempre dá um erro!
Cansado daqueles exemplos hediondos da https://developer.android.com para quem é inteligentão? Cansado aqueles exemplos grandiosos e massantes do https://docs.microsoft.com que só é facil pra eles? Venha pra cá e poste códigos que até crianças entendem aqui! Mostre de forma ridícula como métodos, classes e outras coisas são chamadas. Vamos dar exemplos bem amadores de C++ , Java , Python e outras desgraças!
Forum rules
Não poste coisas complicadas só para mostrar que é 'BONZÃO' ! Queremos coisas pequenas e simples e sem notação húngara
Post Reply
User avatar
javanunes
Site Admin
Posts: 128
Joined: 05 Nov 2017, 19:33
Contact:

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

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