当前位置: 首页 > news >正文

如何搭建英文网站网站制作加双链接怎么做

如何搭建英文网站,网站制作加双链接怎么做,电子商务网站建设过程范文,智慧团建系统登录网站#Linux串口驱动程序-termios结构体中的VTIME和VMIN应用 参考 https://tldp.org/HOWTO/Serial-Programming-HOWTO/x115.html 最近在看Unix-linux系统编程一书#xff0c;做到第六章的时候需要做一个标准输入的超时处理。如下图所示 需要改动的#xff0c;是原书的play_aga…#Linux串口驱动程序-termios结构体中的VTIME和VMIN应用 参考 https://tldp.org/HOWTO/Serial-Programming-HOWTO/x115.html 最近在看Unix-linux系统编程一书做到第六章的时候需要做一个标准输入的超时处理。如下图所示 需要改动的是原书的play_again3.c代码如下所示 功能就是终端问你一句话ASK只有输入大小写的yn才可以跳出 两秒以内没有输入超时会蜂鸣器BEEP一下由于我是虚拟机里面做实验我改成打印一句oligay,最多超时三次。 终端有如下修改 取消了回显你摁的键不会再显示出来进入了非常规模式没有了buffer缓冲区终端你摁一个键马上就会输入进去。常规模式下需要摁enter缓冲区的信息才会输入到程序中。这只是其中一个改变。。。设置VMIN等于1一次只获取一个字符这个键后面讲 标准输入文件有如下的修改 开启O_NDELAY标志关闭文件描述符的阻塞状态。读取不到数据或是写入缓冲区已满会马上return #include stdio.h #include termios.h #include fcntl.h #include string.h #include unistd.h #include ctype.h #include signal.h#define ASK Do you want another transaction #define TRIES 3 #define SLEEPTIME 2 #define BEEP puts(oligay)int get_response( char *, int ); void set_cr_noecho_mode(); void set_nodelay_mode(); int tty_mode( int how ); char get_ok_char(); void ctrl_c_handler(int);int main() {int response;tty_mode(0);//保存本来的串口设置以及保存标准输入的flagsset_cr_noecho_mode();//设置串口驱动程序set_nodelay_mode();//设置标准输入非阻塞response get_response(ASK, TRIES);tty_mode(1);//恢复本来的设置return response;} int get_response(char* question, int maxtries) /** purpose: ask a question and wait for a y/n answer or maxtries* method : use getchar and ignore non y/n answers* returns: 0 yes, 1 no*/ {int input;printf( %s (y/n)?, question);fflush(stdout); //force outputwhile (1) {sleep(SLEEPTIME); //等两秒input tolower( get_ok_char() );if( input y )return 0;if( input n )return 1;if ( maxtries-- 0)return 2;BEEP;} } void set_cr_noecho_mode() /* purpose:put fd 0 into chr-by-chr mode* method change bits in termios*/ {struct termios ttystate;tcgetattr( 0, ttystate);ttystate.c_lflag ~ICANON; //no bufferingttystate.c_lflag ~ECHO; //no echo eitherttystate.c_cc[VMIN] 1; //输入一个字符read就会返回一次获取一个字符tcsetattr( 0, TCSANOW, ttystate); } int tty_mode( int how )//save original tty settings and set {static struct termios original_mode;static int original_flags;if( how 0 ){tcgetattr( 0, original_mode );original_flags fcntl( 0, F_GETFL );}else{tcsetattr( 0, TCSANOW, original_mode);fcntl( 0, F_SETFL, original_flags );}return 1; } char get_ok_char() {char c;c getchar();while( ( c getchar() ) ! EOF strchr( yYnN, c ) NULL );return c; } void set_nodelay_mode() {int termflags;termflags fcntl(0, F_GETFL);termflags | O_NDELAY;fcntl( 0, F_SETFL, termflags ); } 但是这样设置是有问题非阻塞虽然允许了读入为空但 调用getchar之前睡两秒就算1s内输入还是得等两秒如果等待输入同时按了ctrlc,会触发SIGINT信号导致进程中止此时标准输入仍然处于非阻塞shell调用read读命令行什么都读不到直接返回0。shell也会注销~~但我的shell不会~~。 #改为设置 VMIN 和 VTIME实现 设置这两个位会有其他十分有用的用处 读取tty时需要考虑timing因素与读文件不同,因为读串口时不一定会有数据 比如以下场景 读取功能键像F7上箭头这种键是输入一个序列的字符如下所示都是ESC键加 一堆序列程序要分开功能键或者ESC就是看输入ESC后是不是有数据紧跟其后 F7 - ESC [ 18 ~page up ESC [ 5 ~ 高速输入比如从modem读数据需要知道什么时候输入超时 获取偶发低量数据 比如监控串行总线上的温度传感器这些10-20个byte的数据没有明显的结束符如果采用读取固定大小的数据可能下一个温度信息会有少量的byte读不到失去与传感器的同步性设置最少 不同设置方法的不同作用 VMIN 0 and VTIME 0 read函数会变为非阻塞模式。VMIN 0 and VTIME 0 纯计时读入有数据读数据没数据计时如果VTIME毫秒后仍无数据read返回0。VMIN 0 and VTIME 0 如果VMIN byte的数据被read读入或者读入第一个byte后计时超时read都会返回。计时器只会在读入第一个byte后进行计时没有数据输入的话就会导致阻塞。注意 VMIN 1的话计时器是没用的。VMIN 0 and VTIME 0 读够VMIN byte数据read 返回无超时处理会阻塞 因此最后的答案其实设置VTIME 20,VMIN 不设置就好了答案不贴了第一次写不太熟悉Markdown,见谅
http://www.sadfv.cn/news/164162/

相关文章:

  • 门禁考勤网站建设建设网站教程视频视频视频
  • 企业网站源码怎么获取卓智网络科技有限公司
  • 莱州做网站的公司erp软件是干嘛的
  • 当地信息网站建设资质淮安市住房和城乡建设局网站首页
  • 什么是做网站金属行业网站模板下载
  • 手机端网站需要多少钱wordpress菜单默认对游客不显示
  • 江苏建设服务信息网站做网站租服务器
  • 潮州网络推广公司东营网站搜索引擎优化
  • 设计说明书模板seo报价单
  • 制作外贸网站模板网站制作过程流程
  • 涪陵网站设计统计站老站长推荐app视频
  • 营销型网站的缺点廊坊网站建设模板
  • 做网站有名的公司百度云搜索引擎入口官方
  • 高端品牌网站建设服务网站服务器平台
  • 做网站栏目是什么意思做的网站如何发布会
  • 遂宁模板建站公司工程承包商赚钱吗
  • 用asp.net 做网站电子商务实验网站建设实训过程
  • 网站title keywords现在花钱做那个网站好呀
  • 珠海科技网站建设电子商务和网络营销哪个好
  • 网站域名在哪备案网站开发包括哪些
  • 做ppt时网站怎么设计直播带货平台
  • 网站域名空间5个G的多少钱h5做的公司网站
  • 建设银行网站201308网站设计的设计方案
  • 哪个网站做视频赚钱南通制作公司网站
  • 网站支付怎么做的灰色词排名接单
  • 给一个网站风格做定义dw做网站怎么发布
  • 网站文字公告代码阳江彭志雄
  • 怎么做律所的官方网站wordpress 投票 星星
  • 怎么做网站前段wordpress 不能编辑
  • 网站建设和网页制作重庆森林壁纸