Usando a biblioteca readline
Publicado por Perfil removido 08/12/2004
[ Hits: 11.404 ]
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>
Ordenar vetor - ordenação bolha
Crescimento populacional brasileiro
Calcular expressões aritméticas com 2 termos
Nenhum coment�rio foi encontrado.
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Driver de rede realtek 8821ce bugado (3)
Como propositadame... colocar bordas pretas na tela? (1)
Atalhos duplicados (sobras de instalações anteriores) (3)
Como fazer para mudar a frequência da GPU ou pelo menos da CPU no term... (7)