utilities_linux.h - Biblioteca com diversas funções para o Linux
Publicado por Mauricio Ferrari (LinuxProativo) (última atualização em 03/05/2020)
[ Hits: 1.551 ]
Homepage: https://www.youtube.com/@LinuxProativo
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;
}
/****************************************************************************************************/
Shadow Mapping usando OpenGL e Cg
Contagem de elementos de um array
Integração numérica - Método da Quadratura Gaussiana
Nenhum comentário foi encontrado.
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Manutenção básica para Gentoo Linux (com script)
Conheça o Zashterminal, um terminal moderno com IA
DOOM Carniceiro: rode o Meatgrinder com uzdoom (Gentoo e Ubuntu)
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
eu queria saber no lenovo slim, se tem como ver os mhz de memoria e tu... (3)









