utilities_linux.h - Biblioteca com diversas funções para o Linux
Publicado por Mauricio Ferrari (última atualização em 03/05/2020)
[ Hits: 1.043 ]
Homepage: https://www.youtube.com/@LinuxDicasPro
Essa biblioteca possui métodos de funções para o Linux que eu encontrei na internet. Então juntei tudo e fiz algumas adaptações para ficar ao meu gosto.
/**************************************************************************************************** Biblioteca utilities_linux.h By Mauricio Ferrari - 10/02/2020. Funções Adaptadas dos Autores: Fabio Junior Sabai - 29/11/2004 Marcos Paulo Ferreira - 27/12/2012 ****************************************************************************************************/ #include <stdio.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <termios.h> /****************************************************************************************************/ /** Defines. **/ #define getch() init_attr(1); _getch(); #define getche() init_attr(1); _getche(); #define kbhit() init_attr(0); _kbhit(); /****************************************************************************************************/ /** Declarações de Funções. **/ void rl_ttyset(int rst); void init_attr(int x); void close_attr(); int _getch(void); int _getche(void); int _kbhit(void); static char *gets(char *str); struct termios old_attr, new_attr; /****************************************************************************************************/ /** rl_ttyset - Função Para Ler Teclas Pressionadas Pela Função getc sem Pressionar ENTER. **/ void rl_ttyset(int rst){ static struct termios old; struct termios new; if(rst==0){ (void) tcgetattr(0, &old); new=old; new.c_lflag &=~(ECHO|ICANON); new.c_iflag &=~(ISTRIP|INPCK); (void) tcsetattr(0, TCSANOW, &new); }else{ (void) tcsetattr(0, TCSANOW, &old); } } /****************************************************************************************************/ /** init_attr - Função para Desligar o Modo Canônico. **/ void init_attr(int x){ tcgetattr(0,&old_attr); new_attr=old_attr; new_attr.c_lflag &=~ICANON; new_attr.c_cc[VTIME]=0; new_attr.c_cc[VMIN]=x; } /****************************************************************************************************/ /** close_attr - Função para Restaurar o Modo Canônico. **/ void close_attr(){ tcsetattr(STDIN_FILENO,TCSANOW,&old_attr); } /****************************************************************************************************/ /** _getch - Implementação do getch no Linux. **/ int _getch(void){ int c; new_attr.c_lflag &=~ECHO; tcsetattr(STDIN_FILENO,TCSANOW,&new_attr); c=getchar(); tcsetattr(STDIN_FILENO,TCSANOW,&old_attr); return c; } /****************************************************************************************************/ /** _getche - Implementação do getche no Linux. **/ int _getche(void) { int c ; new_attr.c_lflag &=ECHO; tcsetattr(STDIN_FILENO,TCSANOW,&new_attr); c=getchar(); tcsetattr(STDIN_FILENO,TCSANOW,&old_attr); return c; } /****************************************************************************************************/ /** _kbhit - Implementação do kbhit no Linux. **/ int _kbhit(void) { int c; tcsetattr(STDIN_FILENO,TCSANOW,&new_attr); c=getchar(); tcsetattr(STDIN_FILENO,TCSANOW,&old_attr); return c; } /****************************************************************************************************/ /** gets - Alguns Compiladores do Linux não Possuem mais o gets. **/ static char *gets(char *str){ int c; int n=0; while((c=getchar())!=EOF && c!='\n') str[n++]=c; str[n]='\0'; return n==0 && c==EOF? NULL: str; } /****************************************************************************************************/
Patch para Zsnes 1.51 com GCC>=4.3
Regra de Horner para cálculo do polinômio
Nenhum comentário foi encontrado.
Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha
Como preparar o Vim/Neovim para corrigir ortografia em português
Dark Web e Malwares na internet, quanto custa?
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Como verificar o hash de um arquivo baixado da Internet e como criar um hash
Debian 12 - IPTABLES - removendo NFTABLES
OverWatch 2 - Abrindo portas do jogo no Iptables.
Como instalar o adaptador wifi USB Intelbras ACtion A1200 no Linux Mint
Como normalizar seus arquivos MP3 para que fiquem no mesmo volume
Instalação do Programa Imposto de Renda Pessoa Física 2023 [RESOLVIDO]... (6)
Instalando e compilando o GCC/G++ erro (4)
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba
[Shell Script] Tire screenshots com Scrot facilmente com Zscrot
[Shell Script] DioPSI - Script multidistro para instalar programas
[Shell Script] ARS Vídeos - Cortador de vídeos e webcam shooter