linux无阻塞输入
//头文件
#include <sys/ioctl.h>
#include <sys/io.h>
ioctl(STDIN_FILENO,FIONBIO,&attr);//清除阻塞输入,attr为1,这时读取不能使用getchar或scanf,如果没数据会直接返回
len = read(STDIN_FILENO,buf,sizeof(buf)-total);//读取命令窗口是否有输入
if (len>0){
total += len;
if(buf[total-1]=='\n'){
if((47<(int)buf[0])&&(58>(int)buf[0])){Speed = atoi(buf);}
if (buf[0]=='q'){ioctl(STDIN_FILENO,FIONBIO,&attr);return;}
total = 0;
memset(buf, 0, sizeof(buf));
}
}
退出时记得恢复阻塞输入
ioctl(STDIN_FILENO,FIONBIO,&attr)//attr为0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架