当前位置:  技术问答>linux和unix

问一个字符输入的问题

    来源: 互联网  发布时间:2016-04-07

    本文导语:  windows下有一个函数叫做getch(),无论键盘输入任意一个字符,都立刻返回该字符的ascii值。 而在linux下并没有这样的函数,调用getchar()必须按回车才能返回,vxWorks中也是一样。 那么我就不明白,象一些嵌入式设备如...

windows下有一个函数叫做getch(),无论键盘输入任意一个字符,都立刻返回该字符的ascii值。

而在linux下并没有这样的函数,调用getchar()必须按回车才能返回,vxWorks中也是一样。

那么我就不明白,象一些嵌入式设备如思科路由器的命令行界面,他们是如何处理字符的输入呢?

典型的例子:路由器命令终端上按?立刻返回命令的帮助(不需要按回车)。


|
在linux字符设备驱动中有一个termios的概念,它是专门控制格式的。
你用ioctl设置VTIME和VMIN值,
如下代码:
**************************************************************
     struct termios new_settings;
     tcgetattr(0,&stored_settings);
     new_settings = stored_settings;

     /* Disable canonical mode, and set buffer size to 1 byte */
     new_settings.c_lflag &= (~ICANON);
     new_settings.c_cc[VTIME] = 0;
     new_settings.c_cc[VMIN] = 1;
     tcsetattr(0,TCSANOW,&new_settings);
**************************************************************

|
参考UNIX的终端I/O编程
楼上的代码是对的
可以直接写到方法中用的
主要就是termios.h

|
linux也有getch函数,在curses.h头文件中,是curses库提供的函数.
getchar需要回车后才返回,是标准I/O是行缓冲的.

|
学习了!~

|
mark~ 学习

    
 
 

您可能感兴趣的文章:

  • jquery 删除字符串最后一个字符的方法解析 iis7站长之家
  • 请教:如何控制JTextField的输入字符个数,比如只准输入三个字符,光标不能再向右移动了。
  • C++ I/O 成员 gcount():返回读取的最后一次输入的字符数
  • 我要处理用户输入的一个字符窜。怎样写用户输入这段代码?
  • 在linux下终端C编程做登陆时界面时,怎么在输入密码时让它不显示输入内容,或者输入一个字符是*
  • 请问怎么实现判断TextField里输入的是int型整数还是字符串,或者其他的字符??
  • C语言实现输入一个字符串后打印出该字符串中字符的所有排列
  • 急!!请问怎么在文本指定的位置输入字符串
  • 请问从屏幕上输入字符时,能显示别人看不出的原字符,也就是怎么实现加密。这程序该怎么写,谢谢。
  • UNIX下,如何输入一个字符让其显示为 *
  • 急!急!!急!!!如何将键盘输入的字符读入程序中???---在线等待---
  • 输入字符不回显函数
  • js正则判断非法字符限制输入
  • 为什么启动uclinux后键盘输入的字符与超级终端上显示的不一致
  • 在<textarea>中输入的字符串 getString 是有换行符的,但用sendmail发送这个getString 后,在邮件中显示的这个字符串里的所有换行符全不
  • 请问vi中如何输入^M字符呢?
  • 我的JB6,在输入代码时,光标总是靠前一个字符???
  • 简单的字符输入显示问题
  • 第一次写shell: 请问如何识别输入的字符,,拜托各位
  • VIM下行末字符输入问题
  • 请问各位。。。如何判定从键盘上输入的是字符串还是数字呢???
  • 字符字符串加法问题?
  • 简单问题:如何检测一个字符串中是否存在一个字符?
  • Java中关于字符串字符数目的问题
  • 请教,有关16进制字符串形成2进制字符串的问题!
  • 急问bash shell中替换字符串中某字符为通配符的问题。
  • 有个小问题,如何将一字符串按一定规则分割成字符串数组?
  • C语言中的字符串拼接问题,怎么得不到我想要的字符串?
  • 问一个简单的shell问题:如何将一个文件中的字符串A全部用另外一个字符串B替换?
  • 如何处理客户机和服务器使用不同字符集(包括双字节字符)上传或下载文件时文件名的转换问题
  • 关于时间类型向字符串以及字符串向时间类型的转换问题? 很急
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Strings(字符串) 成员 size():返回字符串中字符的数量
  • 关于字符串的操作,我想得到字符串的长度,和他开始两位组成的新的字符串,例如::
  • C++ Strings(字符串) 成员 c_str():将字符串以C字符数组的形式返回
  • 请问怎样判断一个字符是中文字符还是英文字符?(空)
  • C++ Strings(字符串) 成员 find():在字符串中查找字符
  • 用Java正则去掉字符串中重复出现的字符
  • C++ Strings(字符串) 成员 end():返回一个迭代器,指向字符串的末尾。(最后一个字符的下一个位置)
  • 怎样去掉字符串中的tab字符?
  • C++ I/O 成员 ignore():读取字符并忽略指定字符
  • 如何使GDB显示完整的字符串变量,当字符串比较长时。
  • C++ Strings(字符串) 成员 copy():将内容复制为一个字符数组
  • 如何将一个双引号”放在一个字符串中,就是在字符串中如何转义一个双引号。谢谢!
  • C++ Strings(字符串) 成员 rbegin():返回一个逆向迭代器,指向最后一个字符
  • php判断字符串在另一个字符串位置的方法
  • C++ Strings(字符串) 成员 empty():如果字符串为空,返回真
  • crtl+alt+F1一直到F6都可以从图形到字符,那么,这和纯粹的字符界面有什么区别,也就是该/etc/initab的值为3后进入的字符界面?
  • C++ Strings(字符串) 成员 begin():返回一个迭代器,指向第一个字符
  • 请问如何判断字符串中的字符在a~z之间
  • C++ Strings(字符串) 成员 data():返回内容的字符数组形式
  • jquery 删除字符串最后一个字符的方法解析
  • C++ Strings(字符串) 成员 length():返回字符串的长度
  • 怎样在使用curses字符串输出函数或字符输出函数时,隐藏光标


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3