
Enviado em 23/06/2017 - 21:37h
EDIT: Nem sei se o termo emulação está correto./*
* [dkbhit.c]
* Simula a função kbhit().
*
* [Autor]
* Daemonio (Marcos Paulo Ferreira)
* undefinido at gmail com
* https://daemoniolabs.wordpress.com
*
* Versão 1.0, by daemonio @ Thu Dec 27 20:40:22 BRST 2012
*/
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
void init_attr(void) ;
void close_attr(void) ;
int kbhit(void) ;
struct termios old_attr, new_attr;
void init_attr(void) {
/* Obtém as configurações atuais. */
tcgetattr(0,&old_attr);
new_attr=old_attr;
/* Desliga modo canônico. */
new_attr.c_lflag &=~ICANON ;
/* Desliga ecoamento. */
new_attr.c_lflag &= ~ECHO;
new_attr.c_cc[VTIME]=0 ;
new_attr.c_cc[VMIN]=0 ;
}
/* Retorna configurações antigas. */
void close_attr(void) {
tcsetattr(STDIN_FILENO,TCSANOW,&old_attr);
}
int kbhit(void) {
int c ;
tcsetattr(STDIN_FILENO,TCSANOW,&new_attr);
c = getchar() ; /* retorna EOF se nada foi pressionado */
tcsetattr(STDIN_FILENO,TCSANOW,&old_attr);
return c ;
}
int main(void) {
int flag_ler_nome = 0;
char nome[20] ;
init_attr() ;
while(1) {
flag_ler_nome = kbhit() ;
if(flag_ler_nome != EOF) {
printf("Digite seu nome: ") ;
fgets(nome, sizeof nome, stdin) ;
}
printf("** Outros processamentos **\n") ;
}
close_attr() ;
return 0;
}
/* EOF */
#include <ncurses.h>
int main(void) {
initscr(); /* Start curses mode */
printw("Hello, World!"); /* Print Hello. World! */
refresh(); /* Print it on to the real screen */
getch(); /* Wait for user input */
endwin(); /* End curses mode */
return 0;
}
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux









