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?