Usando a biblioteca readline
Publicado por Perfil removido 08/12/2004
[ Hits: 11.464 ]
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>
Eliminando elementos repetidos de uma sequência
Escolha o algoritmo de ordenação
Nenhum coment�rio foi encontrado.
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Como instalar o Telegram Desktop no Ubuntu 24.04
Overclocking Permanente para Drastic no Miyoo Mini Plus
Problemas de chaves (/usr/share/keyrings) no Debian
Converter os repositórios Debian para o novo formato com as chaves
Primeiras impressões do Debian 13 (8)
como resolver o problema de som do linux mint mate (4)