Saída padrão para uma variavel [RESOLVIDO]

1. Saída padrão para uma variavel [RESOLVIDO]

Johnny Navarro
Johnny_Navarro

(usa Slackware)

Enviado em 04/03/2012 - 15:33h

Bem pessoal, estou bem no inicio de meus estudos sobre C++, mas sou meio empolgado com as coisas, ja li muitas apostilas e alguns livros, e depois de relógios e calculadoras pra dá uma sacada na sintaxe de um modo geral, eu resolvi portar um codigo meu ShellScript pra C/C++ no ShellScript eu uso vários comandos como:
var=$(ls)
echo $var
É um script relativamente complexo, configura o Mysql+php+iptables na instalação de uma customização que fiz do slackware.
Eu queria chamar um comando do linux pelo C/C++ e redirecionar sua saída para uma variavel de modo que ela não fosse impressa na tela algo como:

#include <iostream>
#include <stdlib>
int main(){
char comando;
comando = executar_ls_por_exemplo //isto não imprime nada na tela e sim na variavel comando
cout << comando;
}

Eu ja li algo sobre o system, mas sempre imprime alguma coisa na tela e quero que está saída fique sempre oculta.
Peço por favor que se utilizarem funções espicifiquem a biblioteca sou limitado em C/C++ nem conheço as bibliotecas mais usadas por completo ainda, desde já agradeço a todos!!



  


2. MELHOR RESPOSTA

???
gokernel

(usa Linux Mint)

Enviado em 04/03/2012 - 20:07h

Olá !

Para chamar um programa externo podes usar o comando ( popen ) ou usar a saida para uma arquivo assim ( programa > saida.txt ).

Veja algo sobre POPEN:
http://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/FUNCTIONS/popen.html

E veja o exemplo... observe que só envia algo para tela nesta linha... sacas ????
-----------------------------------
printf("%s", line);
-----------------------------------

Abraço !


3. Re: Saída padrão para uma variavel [RESOLVIDO]

Johnny Navarro
Johnny_Navarro

(usa Slackware)

Enviado em 04/03/2012 - 21:07h

Foi rápido, práticas colaborativas são o motor que movem a comunidade linux no mundo, viva LIBERDADE E A COLABORTIVIDADE. Uma pequena colaboração que encontrei em um material em inglês è:

#include <stdio.h>
int fputs (const char *str, FILE *stream);

int main(){
FILE *stream;
stream = fopen ("journal.txt", "a");
if (!stream);
/* error */
if (fputs ("Se esse bagaça aparecer na tela é que esse pau véio tá podi\n", stream) == EOF);
/* error */
if (fclose (stream) == EOF);
/* error */
return 0
}
Mais ou menos assim dá pra escrever pra um arquivo no caso o journal.txt, isso já tinha visto a novidade é
o EOF para o stream legal pode ser util



4. Re: Saída padrão para uma variavel [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 05/03/2012 - 17:33h

Olá caro "Johnnynavarro" !

Caso tenha obtido uma resposta fatisfatória para a sua pergunta, por gentileza marcar o tópico como resolvido e marcar a melhor resposta( lógico, a minha né brother ? ). ;) ... Sacas ???

Regras para uma boa convivência em uma comunidade, mesmo que essa seja virtual ...

Abraço !



5. Re: Saída padrão para uma variavel [RESOLVIDO]

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 05/03/2012 - 23:02h

Interessante, com a função system() chamo comandos do sistema e não me retornam nada. Ex:


#include <stdio.h>

main(){
system("firefox");
return 0;
}


Esse código abre o Firefox, mas serve para qualquer executável.


6. Re: Saída padrão para uma variavel [RESOLVIDO]

Johnny Navarro
Johnny_Navarro

(usa Slackware)

Enviado em 05/03/2012 - 23:06h

É mais não era sóredirecionar a saída, eu precisava da saída em um buffer executar realmente dá pra usar o system(), mas no meu caso eu precisva fazer várias coisas, não erá só executar o comandinho qualquer atoa não!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts