2 curses库IO处理--终端模式设置

《UNIX环境高级编程》笔记 第十八章-终端IO 1. 终端I/O概述 1.1 规范和非规范模式 终端I/O有两种不同的工作模式: 规范模式输入处理:对终端输入以行为单位进行处理。对于每个读请求,最多返回一行。 非规范模式输入处理:输入字符不装配成行 若不做特殊处理,则终端I/O默认模式是规范模式。处理整个屏幕的程序(如vi编辑器)使用非规范模式。 1.2 特殊输入字符 POSIX.1定义了11个特殊输入字符,例如文件结束符(Ctrl+D)和挂起字符(Ctrl+Z),其中9个可以更改。 1.3 终端设备的输入输出队列 终端设备由位于内核中的终端驱动程序 阅读详情

2.2 终端模式设置

=================


2.2.1 ECHO模式

---------------

   * 函数

     int echo() / int noecho()

   * 说明

     1. ECHO模式即回显模式,ECHO模式用来决定用户的输入是否立即回显


2.2.2 CBREAK模式

-----------------

   * 函数

     int cbreak() / int nocbreak()

   * 说明

     1. CBREAK模式也被成为立即输入模式,在此模式下,除了DELETE或者CTRL等仍然被视为特殊控制字符外,所有的输入字符都被一一立即读取出来.

     2. 默认情况下CBREAK模式是打开的

     3. 在旧版本的curses中,必须使用crmode()和nocrmode()取代cbreak()和nocbreak()


2.2.3 NEWLINE模式

------------------

   * 函数

     int nl() / int nonl()

   * 说明

     NEWLINE模式决定输入时回车是否为\r\n.输入时\r\n是否和起来作为一个回车键


2.2.4 功能键模式

-----------------

   * 函数

     int keypad(WINDOW *win,int flag)

     * 参数说明

       1. win指向需要设置功能键模式的窗口

       2. flag为TRUE/FALSE用来指定模式的开启或关闭

   * 说明

     1. 一般情况下,方向键与功能键这些特殊字符是无法被wgetch()之类的函数读取出来的.开启功能键模式之后,特殊字符会被转化为curses.h内部定义的一些特殊键.

     2. curses.h内部定义的特殊键一般以KEY_开头,列表如下

        * KEY_MIN         curses中定义的最小的键值

        * KEY_BREAK       break按键

        * KEY_DOWN        方向键下

        * KEY_UP          方向键上

        * KEY_LEFT        方向键左

        * KEY_RIGHT       方向键右

        * KEY_HOME        home键

        * KEY_BACKSPACE   退格键

        * KEY_F0          功能键F0

        * KEY_F(n)        功能键Fn

        * KEY_DL          行删除键

        * KEY_IL          行插入建

        * KEY_DC          字符删除键

        * KEY_IC          字符插入键

        * KEY_NPAGE       下一页

        * KEY_PPAGE       上一页

        * KEY_END         end键

        * KEY_MAX         curses定义的最大键值


2.2.5 RAW模式

--------------

   * 函数

     int raw() / int noraw()

   * 说明

     * 用户的输入会立即被接受,同时任何特殊字符将不再起作用,取而代之的是产生一个相应的信号

     * 如果同时设置CBREAK和RAW模式,仅有RAW模式其作用


2.2.6 延迟模式

---------------

   * 函数

     int halfdelay(int tenth)

     * 参数说明

       1. tenth指定半延时的时间间隔,单位是10ms

     int nodelay(WINDOW *win,bool bf)

     * 参数说明

       1. win指向需要设置无延迟模式窗口的指针,bf决定开启或关闭该模式

   * 说明

     * 半延迟模式与cbrak模式非常类似,所有用户输如立即被接受,但不同点在于如果一段时间内用户没有输入,则输入函数立即返回ERR

     * 使用nocbreak()函数可以取消终端的半延时模式

     * 无延迟模式主要用来控制终端的字符输入. 它使得终端输入函数由阻塞调用变成非阻塞调用


本文出自 “暗日” 博客,请务必保留此出处http://darksun.blog.51cto.com/3874064/1281961

Python中的curses入门 ​是一个Python标准库,提供了一套接口封装了底层的终端控制功能,让我们能够以一种简单而灵活的方式在终端中进行图形化的交互操作。在Python编程中,如果你想要创建基于文本的用户界面,处理终端的显示和输入,或者实现一些文本交互的功能,那么curses模块是你的好帮手。​模块,我们可以更方便地在Python中使用终端创建基于文本的用户界面,处理终端的显示和输入。​模块还有很多强大的功能和细节,可以帮助我们创建更复杂和交互性更强的终端应用程序。​方法等待用户输入,返回的是用户按下的键值。 阅读详情

相关推荐

curses-2.2-cp36-cp36m-win_amd64.whl

curses-2.2-cp36-cp36m-win_amd64.whl python36 老版本过期了,报错就下这个,然后用pip安装就好 记住再pycharm重新更新

python keyboard backspace_Python curses.KEY_BACKSPACE屬性代碼示例

本文整理匯總了Python中curses.KEY_BACKSPACE屬性的典型用法代碼示例。如果您正苦於以下問題:Python curses.KEY_BACKSPACE屬性的具體用法?Python curses.KEY_BACKSPACE怎麽用?Python curses.KEY_BACKSPACE使用的例子?那麽恭喜您, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在模...

weixin_29790175的博客 463

RoboMaster机甲大师赛备赛:如何用STM32+CAN总线精准控制四个大疆3508电机?

本文详细介绍了在RoboMaster机甲大师赛中,如何利用STM32和CAN总线技术精准控制四台大疆3508电机。从硬件架构设计、多电机ID分配、数据解析到同步控制算法,全面解析了构建高响应、低延迟底盘驱动系统的关键技术,助力参赛队伍提升机器人运动性能。

weixin_28684825的博客 134

在Windows下安装curses包

首先,下载包文件curses‑2.2‑cp36‑cp36m‑win_amd64.whl。 然后,在文件所在目录执行命令pip install curses‑2.2‑cp36‑cp36m‑win_amd64.whl

u012487272的专栏 1万+

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 716

《LangChain技术原理剖析:OpenAI Function Calling的实践与应用》

,"unit": {},name:函数的唯一标识符:自然语言描述,决定LLM如何选择该函数parameters:定义输入参数的完整Schema。

qq_62223405的博客 980

python的库的用法_简单的Python的curses库使用教程

curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法。curses 是大多数类似于 UNIX 的系统(包括 Linux)的标准部分,而且它已经移植到 Windows 和其它系统。curses 程序将在纯文本系统上、xterm 和其它窗口化控制台会话中运行,这使这些应用程序具有良好的可移植性。介绍 cursesPython 的标准 curses 提供了“玻璃电传”(glas...

weixin_39548787的博客 585

用 ABAP LSMW 的 Standard Batch / Direct Input 稳准快迁移物料主数据:从 MM01 录制到 RMDATIND 直入的落地指南

本文详细介绍了SAP数据迁移中LSMW工具的使用方法,重点分析了物料主数据迁移的两种主要路径:Batch Input Recording和Standard Batch/Direct Input。前者通过录制事务操作实现快速起步,后者通过调用预置接口程序实现稳定高效的批量处理。文章深入解析了Standard Direct Input的具体实施步骤,包括对象属性设置、源结构定义、字段映射规则等关键环节,并特别强调了迁移前的准备工作(如编号策略、视图策略等)对项目成功的重要性。通过对比两种方法的优缺点,为不同业务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 155

2 curses库IO处理--字符属性函数

2.4 字符属性函数 =================2.4.1 chtype说明 -----------------    * chtype类型包含两部分信息:一部分包含字符本身的信息,另一部分包含与字符相关的一些属性信息,这些属性允许字符用不同的方式显示,包括反显,加粗,变色,下划线等    * 当字符作为参数传递给函数的时候可以将这些属性直接用|与字符结合,多个属性直接也可以用|来对属性进

暗日 472

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 519

搞定ESD(七):静电放电问题典型案例分析(二)

静电放电噪声耦合的方式主要是:传导耦合与辐射耦合,辐射耦合主要以磁场耦合、 电场耦合为主要形式。电场耦合发生的主要条件是:静电放电高频在参考地平面寄生电感中产生电平波动,平行于参考地平面上的较长信号布线就很容易通过分布电容发生电场耦合。根据高速信号回流路径的特性可知,其回流路径是贴近信号布线下方,或者信号两侧,若信号回流路径跨分割后,环路面积会随之增大;信号环路面积大从EMI角度看其空间辐射更强,从EMS角度看则更容易耦合外部噪声干扰(雷击浪涌、EFT、ESD、RS)。

记得诚 2801

2 curses库IO处理--颜色属性

2.7 颜色属性 =============2.7.1 颜色说明 ---------------    * curses库中使用RGB方法来表示一种颜色    * 默认的颜色有        颜色            索引号         ---------------+--------        COLOR_BLACK          0          COLOR_RED    

暗日 719

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南

本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。

2201_76125261的博客 1554

2 curses库IO处理--输入/输出函数

2.3 输入/输出函数 ==================2.3.1 字符,字符串输出 ----------------------/** @brief 在光标位置输出字符,但不自动刷新 @param ch 需要输出的字符 @return OK 成功 @return ERR 失败 @note chtype为无符号长整型,它的低位可以包含字符本身的信息,这部分与char类型类似 @no

暗日 503

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

2 curses库IO处理--光标操作

2.5 光标操作 =============2.5.1 光标说明 ---------------    * curses库中光标分为物理光标和逻辑光标.物理光标只有一个,而逻辑光标属于curses窗口,每个窗口只有一个物理光标但却可能有多个逻辑光标    * 物理光标位置会在处理输入函数之后发生改变,但可以通过WINDOW结构的_leave标志重新定位它      * 如果设置了_leave标志,

暗日 783

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

linux下curses的用法

转载: https://www.cnblogs.com/dandingyy/archive/2012/08/23/2651644.html 1、术语概念 curses工作在屏幕,窗口和子窗口之上。屏幕是设备全部可用显示面积(对终端是该窗口内所有可用字符位置),窗口与具体例程有关。如基本的stdscr窗口等。 curses使用两个数据结构映射终端屏幕,stdscr和curscr。stdscr...

qq_30534935的博客 959

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2 curses库IO处理--清屏函数

2.6 清屏函数 =============/** @brief 清除屏幕上的所有字符,并且将光标移动到屏幕的原点 @note clear()会自动调用clearok()函数,这使得clear()函数能够清除物理屏幕上的那些curses无法识别的垃圾 @see wclear() */ int clear(); /** @brief 清除屏幕上所有字符 @note 它不会自动调用c

暗日 954

2 curses库IO处理--curses的一些说明

2.1 curses的说明 =================2.1.1 curses中的常量定义 -------------------------    * OK      curses库函数运行成功的返回值,系统定义为0    * ERR      curses库函数运行发生错误的返回值,系统定义为-1    * TRUE      布尔值,表示真,系统定义为1    * FALSE  

暗日 473

Linux下curses函数库

1.安装   ubuntu11.10下默认没有安装curses函数库,(CentOS下默认已经安装,可以直接在usr/include下查看是否有该头文件来确定)使用   >sudo apt-get install ncurses-dev   安装curses库,这样在curses函数库的头文件和库文件就被分别安装在/usr/include/和/usr/lib/下,在编译程序时,直接使...

weixin_30242907的博客 981

在终端里一边跑AI任务一边打砖块:curses与多线程实战

在终端环境中,curses库提供了字符界面下的实时交互与动画能力,结合多线程技术,可以实现任务与娱乐的并行处理。其原理是通过非阻塞输入和共享状态管理,让耗时任务在后台运行的同时,前台保持流畅响应。这种模式的技术价值在于提升资源利用率和用户体验,尤其适用于AI任务等待场景。例如,开发者可以在调用大模型API时,利用等待时间在同一个终端内玩一局打砖块,从而缓解等待焦虑。本文以打砖块游戏与AI任务集成为例,详细解析了curses终端控制、多线程调度及碰撞检测等核心实现。

weixin_29291185的博客 245

Python实现终端音乐播放器:从音频处理到TUI界面开发

音频处理是多媒体编程的基础,涉及音频文件的解码、播放控制与信号处理。其原理在于通过音频库解析文件格式,管理播放状态与音频流。在技术价值上,轻量级命令行工具能提升开发效率,尤其适合服务器环境与自动化脚本。应用场景包括后台音乐播放、音频监控与自动化测试等。本文以Python的pydub库为核心,结合curses实现终端用户界面,构建了一个完整的终端音乐播放器。通过异步事件处理与播放列表管理,项目展示了如何将音频处理与TUI开发结合,实现高效、可定制的命令行工具。

weixin_30301449的博客 313
上一篇: 2 curses库IO处理--curses的一些说明
下一篇: 2 curses库IO处理--输入/输出函数
darksun9972
博客等级 码龄19年 42粉丝 399原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值