Usando a biblioteca readline
Publicado por Fabio Junior Sabai 08/12/2004
[ Hits: 11.113 ]
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>
vetor01.c (programa que envolve vetor, simples)
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
ASRock H310CM-HG4 vs Linux [RESOLVIDO] (19)
redirecionando saida de comando touch para o AWK[AJUDA] (8)
Manipulação de dados binários, aplicações (0)
Fedora 40 Melhor que Ubuntu 24.04 (7)
Microfone do meu headset não é recinhecido. Meu notebook é um Acer Asp... (13)