Usando a biblioteca readline
Publicado por Perfil removido 08/12/2004
[ Hits: 11.371 ]
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>
Parte 2 - Sessão de estudo sobre MATRIZES
Nenhum comentário foi encontrado.
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
O Que Fazer Após Instalar Ubuntu 25.04
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Alguém poderia me ajudar a escolher peças pra montar um desktop? (0)
modo de emergencia no linux [RESOLVIDO] (1)