Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Combinação de PIPE e arquivo ? Ajuda

$
0
0

Boa tarde pessoal! Sou iniciante em C e estou com uma grande dúvida em um projeto da facudade...

 

preciso fazer um interpretador de comandos que além de imprimir na tela comandos simples, armazene o que aparece na tela em um arquivo de log.

 

O meu código até o momento é o seguinte

 

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>

int pipe_log(char comando[80]){

        char buf[1000];
        char url[]= "log.txt";
        FILE *arq;
        extern FILE *popen();

        if(!(arq = popen(comando,"r"))){
                exit(1);
        }
        printf("O system gerou os dados:\n");
        while(fgets(buf,sizeof(buf),arq)!=NULL){
                printf("%s",buf);
        }

        arq = fopen(url,"w");
        fprintf(arq,"%s",buf);             // estas tres linhas foram uma tentativa frustrada escrever os dados do buf em um arquivo, antes de fechar o popen();
        fclose(arq);//fecha o arquivo

        pclose(arq);
}

int main(){

        char comando[80];

        while(!(strcmp(comando,"exit")==0)){
                printf("\nDigite o comando que deseja executar:");
                scanf("%s",comando);
                if (strcmp(comando,"exit")==0){
                        exit(0);
                }else{
                        pipe_log(comando);
                }
        }
        return 0;

 

 Preciso salvar o que aparece na tela também em um arquivo de log.. algém pode me ajudar?


Viewing all articles
Browse latest Browse all 14190