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;
}
Vou voltar moderar conteúdos de Dicas e Artigos (0)
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta