Mandar valor para buffer [RESOLVIDO]

1. Mandar valor para buffer [RESOLVIDO]

Luiz Augusto
luizzaugustoll

(usa Linux Mint)

Enviado em 01/10/2014 - 00:07h

Olá, queria saber se alguém saberia me dizer como eu posso mandar um valor pro buffer sem a necessidade do teclado, também queria saber se esse valor guardado em uma variável, se eu consigo encontra-lá mesmo misturando alto e baixo nível, ou seja, definir:


char c = 1;

asm("(mandar valor em c para para o buffer)");



E já que estou aqui também vou mandar o meu objetivo, implementar o kbhit()


int kbhit(void)
{
struct termios a,b;

noncan(&a,&b);
a.c_lflag &= ~ECHO;
a.c_cc[VMIN] &= 0;
init_attr(a);
char c = getchar();
//só taria faltando essa parte, do valor do c pro buffer;
init_attr(b);

if(c == -1)
return 0;
else
{

return 1;
}
}

// Manipulação do terminal.


void noncan(struct termios *n_attr,struct termios *o_attr)
{
tcgetattr(0,&*o_attr);
*n_attr = *o_attr;
n_attr->c_lflag &= ~ICANON;
}

void init_attr(struct termios _attr)
{
tcsetattr(STDIN_FILENO,TCSANOW,&_attr);
}




  


3. Re: Mandar valor para buffer [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 01/10/2014 - 09:48h

Se possivel , coloque o codigo entre ["code"] e ["/code"] sem aspas

ficara assim :


#include <stdio.h>

int main(){
printf("Codigo de exemplo\n");
return 0;
}


Quanto ao que vc quer , veja se isso ajuda :
http://www.vivaolinux.com.br/topico/C-C++/getch%28%29-no-linux
Espero ter ajudado

[]'s

T+


4. Re: Mandar valor para buffer [RESOLVIDO]

Luiz Augusto
luizzaugustoll

(usa Linux Mint)

Enviado em 01/10/2014 - 13:57h

Corrigi meu texto, mas o link da página não tá funcionando.


5. Re: Mandar valor para buffer [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 01/10/2014 - 14:13h

Corrigido :)


6. Re: Mandar valor para buffer [RESOLVIDO]

Luiz Augusto
luizzaugustoll

(usa Linux Mint)

Enviado em 01/10/2014 - 19:46h

Muito obrigado, essa função abaixo incluso no meu else foi o que fez o que eu queria :D


int kbhit(void)
{
struct termios a,b;

noncan(&a,&b);
a.c_lflag &= ~ECHO;
a.c_cc[VMIN] &= 0;
init_attr(a);
char c = getchar();
init_attr(b);

if(c == EOF)
return 0;
else
{
ungetc(c,stdin); // simplesmente adiconar essa linha e voialá
return 1;
}
}



7. Re: Mandar valor para buffer [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 01/10/2014 - 22:49h

Entao marque o topico como resolvido e depois escolha a resposta que mais lhe ajudou

T+






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts