Usando a biblioteca readline
Publicado por Perfil removido 08/12/2004
[ Hits: 11.522 ]
A biblioteca readline, a mesma usada pelo bash, serve, como o nome diz, para ler linhas. Ela porém faz mais que isso: permite edição total da linha a ser lida, permite manter histórico de linhas lidas, salvar histórico, recuperar histórico, e muitas outras coisas. Vou mostrar nesse script um pouco do que ela oferece.<br>
Obs.: Para compilar use: gcc -o arq arq.c -lreadline -lncurses
#include < stdio.h><br>
#include < readline/readline.h><br>
#include < readline/history.h><br>
<br>
main()<br>
{<br>
     char *s = (char *) 1;<br>
     int n = 0, sair = 0;<br>
<br>
     printf("Teste da biblioteca readline. Para sair entre com uma linha vazia\n\n");<br>
<br>
     read_history("/tmp/historico"); /* le o histórico do arquivo, se o arquivo existir */<br>
     using_history(); /* habilita o uso do histórico */<br>
<br>
     do {<br>
         /* o argumento da readline é o prompt a ser exibido<br>
           se o argumento for NULL, nenhum prompt é exibido */<br>
         s = readline("\\>"); <br>
<br>
         if ( *s ) /* para ignorar linhas em branco */<br>
         {<br>
             add_history(s); /* adiciona a linha lida ao histórico */<br>
             n++; /* para ser usada na função append_history abaixo */<br>
<br>
             /* aqui você pode fazer o que quizer com a linha lida */<br>
             printf("linha lida: %s\n", s);<br>
<br>
             /* e depois liberar a memória alocada pela readline */<br>
             free(s);<br>
         }<br>
         else<br>
             sair = 1;<br>
     } while ( !sair );<br>
<br>
     /* se o arquivo existir adiciona n linhas do histórico ao arquivo,<br>
       caso contrário escreve todo o histórico no arquivo */<br>
     if ( append_history(n, "/tmp/historico") != 0 )<br>
         write_history("/tmp/historico");<br>
<br>
     exit(0);<br>
}<br>
<br>
Utilização de Ponteiros em C (2)
Multiplicação de matrizes com indireção múltipla
[C++] remover todos os multiplos de 3
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









