Usando a biblioteca readline
Publicado por Perfil removido 08/12/2004
[ Hits: 11.485 ]
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>
Fibonacci - Modo muito simples
Converter um vetor em uma matriz multidimensional
Nenhum comentário foi encontrado.
Intel corta Vulkan do oneAPI Construction Kit 5.0
Kernel 6.18 em foco, betas fervilhando e avanços em IA no Linux
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
intervenção politica pode interver no Fedora Linux [RESOLVIDO] (10)
Primeiras impressões do Debian 13 (24)
Fedora não reconhece James Donkey 102 Wireless Gaming Mouse (1)