Chinaunix首页 | 论坛 | 博客
  • 博客访问: 577921
  • 博文数量: 99
  • 博客积分: 3976
  • 博客等级: 中校
  • 技术积分: 1041
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-15 15:48
文章分类
文章存档

2009年(1)

2008年(5)

2007年(31)

2006年(58)

2005年(4)

分类: C/C++

2006-04-24 13:06:27

struct tty_queue {
    long head;
    long tail;
    char buf[64];
}read_q = { 0,0,""} ;

static int in = 0;
long volatile timerc;
 
 
 
void printf(char *fmt, ...)
{
    __asm__ __volatile__ (
            "movl $7, %%eax\n\t"
            "int $0x80\n\t"
            ::"b" (fmt)
            );
}
void delay(void)
{
      int time_delay;
      time_delay = timerc;
      while((timerc - time_delay ) < 6);
}

unsigned char getchar(void)

 unsigned char ch;
 if(read_q.tail == read_q.head)

  while(input == 0 ) {
   delay();
  }
  in = 0 ;
 }
 
 ch = read_q.buf[read_q.tail];
 read_q.tail = (read_q.tail + 1) & (64 - 1);
 return ch;
}
int main()
{
 char a;
 a=getchar();
 printf("1jjk give you a message !the char is %c\n", a);
}
 
$gcc a.c
$./a.out
阅读(1580) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~