Ir para conteúdo
Entre para seguir isso  
Bruno SR

Combinação de PIPE e arquivo ?

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

  • Conteúdo Similar

    • Por lucasvilela01
      Olá a todos. Preciso de algum direcionamento sobre um aplicativo similar a uma rede social (é uma rede social), um projeto da equipe que eu trabalho. Preciso fazer o envio de fotos e vídeos para um servidor de arquivos (por exemplo, um Apache da vida) e atualmente estou usando somente Node JS e Express nesse projeto.
       
      Meus companheiros (desenvolvedores Android e iOS) enviam no momento as imagens como Base64 codificado e o banco MongoDB recebe e traz essa informação para eles. Na última reunião com os donos do projeto, nos notificaram a necessidade do envio de vídeos também.
       
       Sabendo que Base64 demora para ser decodificado e pesa muito nas queries, como posso fazer o envio de arquivos para servidores, sem passar necessariamente por HTML (como todos os tutoriais que eu vi na internet mostram)?
       
        Tem jeito? Agradeço desde já! <3 
    • Por danillo.sdd
      No php, ao tentar baixar arquivos pela minha aplicação, o arquivo baixa com sucesso, mais abrir está corrompido.
       
      //DOWNLOAD DO ARQUIVO
      $arquivo   = 'C:/teste/arquivo.zip';
      header("Content-Type: application/zip");
      header("Content-Disposition: attachment; filename=" . basename($arquivo));
      header("Pragma: no-cache");
      header("Expires: 0");
      header("Content-Length: " . filesize($arquivo));
      readfile($arquivo);
    • Por Alexandre Garcia
      Olá,
       
      Estou precisando criar uma tabela que deve ser preenchida com os nomes dos arquivos do diretório $ORACLE_HOME/rdbms/admin
       
      Alguém teria alguma ideia de como posso fazer isso? Ou se isso é possível?
       
      Obrigado.
    • Por lerdofphp
      Pessoal, 
       
      Tenho uma pasta com arquivos de texto com datas e gostaria de criar uma lista automática com eles apenas usando HTML e JavaScript isso seria possível?
       
      A ideia é que o script realize a pesquise dos arquivos existente na pasta e cria-se o SELECT em HTML.
       
      Exemplo:
      Pasta: paginas
      Arquivos:
      - Arquivo-12-07.txt
      - Arquivo-13-07.txt
      - Arquivo-14-07.txt
       
      Resultado Esperado:
       
      <select>
        <option value="Arquivo-12-07.txt">Arquivo-12-07.txt</option>
        <option value="Arquivo-13-07.txt">Arquivo-13-07.txt</option>
        <option value="Arquivo-14-07.txt">Arquivo-14-07.txt</option>
      </select>
       
       
       
    • Por Mateus_Jp
      Boa Tarde Senhores,
       
      Estou iniciando meus estudos em PHP e já consegui fazer várias coisas hehe...
       
      Meu sistema de Upload de Arquivos está funcionando tudo OK, copiando a imagem do PC para a pasta img dentro do www.
      Porém essa mensagem de erro está me incomodando e não sei como solucionar, já vi algumas sugestões na internet mas nada resolveu ainda.
      Não queria meu sistema funcionando mas com uma mensagem de erro.
       
      Warning: copy(): Filename cannot be empty in C:\AppServ\www\login\pags\cadastro.php on line 48
       
      Meu código (cadastro.php):
      <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>    <script>     $(document).ready(function(){     $('#showPassword').on('click', function(){          var passwordField = $('#password');     var passwordFieldType = passwordField.attr('type');     if(passwordFieldType == 'password')     {         passwordField.attr('type', 'text');         $(this).val('Ocultar');     } else {         passwordField.attr('type', 'password');         $(this).val('Mostrar');     }   }); }); </script> </head> <body> <h4>Cadastre-se</h4> <hr> <link href='https://fonts.googleapis.com/css?family=Ubuntu' rel='stylesheet' type='text/css'> <div class="container">   <form action="" id="loginForm" method="POST" enctype="multipart/form-data">     <p><label for="nome">Nome *</label><br><input type="text" name="nome" placeholder="Nome Completo" class="form-control"/></p><br>     <p><label for="usuario">Usuário *</label><br><input type="text" name="usuario" placeholder="Nome do Usuário" class="form-control"/></p><br>     <p><label for="password">Senha *</label><br><input type="password" name="senha" id="password" placeholder="Senha" /> <img id="showPassword" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABDUlEQVQ4jd2SvW3DMBBGbwQVKlyo4BGC4FKFS4+TATKCNxAggkeoSpHSRQbwAB7AA7hQoUKFLH6E2qQQHfgHdpo0yQHX8T3exyPR/ytlQ8kOhgV7FvSx9+xglA3lM3DBgh0LPn/onbJhcQ0bv2SHlgVgQa/suFHVkCg7bm5gzB2OyvjlDFdDcoa19etZMN8Qp7oUDPEM2KFV1ZAQO2zPMBERO7Ra4JQNpRa4K4FDS0R0IdneCbQLb4/zh/c7QdH4NL40tPXrovFpjHQr6PJ6yr5hQV80PiUiIm1OKxZ0LICS8TWvpyyOf2DBQQtcXk8Zi3+JcKfNafVsjZ0WfGgJlZZQxZjdwzX+ykf6u/UF0Fwo5Apfcq8AAAAASUVORK5CYII=" /><br><br>     <p><label for="email">E-Mail *</label><br><input type="email" name="email" placeholder="Endereço de E-Mail" class="form-control"/></p><br>     <p><label for="avatar">Avatar</label><br><input type="file" name="avatar" id="avatar"><br><br><input type="reset" value="Apagar"><br><br><br><br>     <input type="submit" value="Cadastrar" class="btn btn-primary btn-lg btn-block">     <input type="hidden" name="cadastrar" value="register">   </form> </div>      </body> </html> <?php      $nome_temporario=$_FILES["avatar"]["tmp_name"];     $nome_real=$_FILES["avatar"]["name"];     copy($nome_temporario,"img/$nome_real");     cadastro($con); ?> Esse cadastro($con) é uma function que efetua o cadastro e está em outro php, mas creio que ele não será necessário.
      O erro está informando que é esta linha: copy($nome_temporario,"img/$nome_real");
       
      Alguém teria alguma luz pra me ajudar???
       
      Grato, Mateus.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.