Usando a biblioteca readline
Publicado por Perfil removido 08/12/2004
[ Hits: 11.577 ]
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>
Algoritmo em C - Ordenação por Inserção
Parte 2 - Sessão de estudo sobre VETORES
Conta e substitui caracteres de uma frase
Soma dos pares menores que ele
2 Programinhas em C para conversão de bases
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (6)
Instalação do cosmic no archlinux (0)
Formas seguras de instalar Debian Sid [RESOLVIDO] (14)









