utilities_linux.h - Biblioteca com diversas funções para o Linux
Publicado por Mauricio Ferrari (última atualização em 03/05/2020)
[ Hits: 1.217 ]
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; } /****************************************************************************************************/
Fazendo o somatório de 1 até N
Manipulando argumentos com getopt_long
Vários pacotes de ping disparados contra o host
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)