unix\linux编程学习笔记之终端模式

Unix/Linux编程实践教程(一) -------------------------------前言呃。。。。开始入坑linux。参考书当然时《Unix/Linux编程实践教程》现写下心得笔记,有什么不对的,请大家指正哈。-------------------------------正文直接上代码:/*more01.c - version 0.1 of more *read and print 24 lines then pau... 阅读详情

1、规范模式

规范模式,也被成为cooked模式,是用户常见的模式。驱动程序输入的字符保存在缓冲区,并且仅在接收到回车键时才将这些缓冲的字符发送到程序。缓冲数据使驱动程序可以实现最基本的编辑功能,如删除字符,单词,整行。当用户分别按下删除建、单词删除键或是终止键时,这些功能就会被调用。被指派到这些功能的特定键在驱动程序里设置,可通过命令stty或系统调用tcsetattr来修改。

2、非规范模式

当缓冲和编辑功能被关闭是,连接被称为处于非规范模式。终端处理器仍旧进行特定的字符处理,例如Ctrl-C及换行符和回车符之间的转换。但是,用于删除、单词删除、终止的编辑键没有特殊的意义,因此相应的输入被视作常规的数据输入。

如果用非规范模式编写程序,并且希望用户能够编辑他们的输入,需要在你的程序中实现编辑功能。

3、raw模式

每个处理步骤都被一个独立的位控制。例如,ISIG为控制Ctrl-C键是否用于终止一个程序。程序可随意关闭所有这些步骤。

当所有处理都被关闭后,驱动程序将输入直接传递给程序。这种情况下,驱动程序被称为处于raw模式,将它作为一个选项。很多Unix shell包含编辑特征,如使用箭头键在执行过的命令列表中滚动。这些shell运行在实现这些功能所需要的raw模式下。当程序退出或死亡是,像bash和tcsh这些shell立即重置终端的属性。

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

相关推荐

在UNIX \ Linux终端中的可视化磁盘空间和磁盘使用情况小工具 - Vizex

在UNIX\ Linux终端中的可视化磁盘空间和磁盘使用情况小工具 - Vizex背景-什么是VizexLinux终端上安装方法如何使用Vizex1. vezix2. vizexdf3. 可以通过 --help 使用command调用option获得全部功能。 背景-什么是Vizex Vizex是UNIX / Linux系统的终端程序,它可以帮助用户查看用户计算机上每个分区和介质的磁盘空间使用情况。并能以彩色区分度高的图形方式显示计算机上所有分区和介质的空闲和可用磁盘空间。 其包含vizexdf这一功能,允

weixin_42042485的博客 1355

stty命令使用

stty [ -a ] [ -g ] [ Options ]   stty(set tty)命令用于显示和修改当前注册的终端的属性。 UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。 在stty中相应选项前冠以负号(-),该选项被清除;如果无负号,该选项被设置。 stty -a #将所有选项设置的当前状态写到标准输出中

wangwenwen的专栏 1万+

LINUX与UNIX Shell编程指南2:进阶实践与技巧

本文还有配套的精品资源,点击获取 简介:Linux和Unix操作系统是IT行业的基础工具,Shell编程是与这些系统交互的关键技术。《LINUX与UNIX Shell编程指南2》为想要提高在Linux或Unix环境下工作效率的读者提供了深入学习的机会。本指南涵盖了Shell编程的基础知识,包括Shell的基本概念、变量、控制结构、函数、脚本编写、命令行参数处理、文件与目录操...

weixin_31720909的博客 780

Linux串口设置命令stty和raw模式

整理部分相关内容,以备之后查用, Linux stty命令 - xdzone - 博客园 (cnblogs.com)https://www.cnblogs.com/xdzone/archive/2011/03/15/1984981.htmllinux命令---常用stty的命令 - W1552332103 - 博客园 (cnblogs.com)https://www.cnblogs.com/tianzhiyi/p/5312056.html(177条消息) linux下保存下位机输出的串口信息为文件_wei

jgw2008的专栏 1643

Linux下RAW模式串口设置

目前新购买的计算机上,串口(uart,rs-232)已经难觅踪迹。但作为开发调试人员,串口 依然广泛的被使用着,例如嵌入式开发,交换机配置等。   RAW模式与非RAW模式   RAW模式简单的来说,是发送端发动的二进制码原封不动的被接收端接收。   若干年前使用Windows下的 串口调试助手 对单片机串口进行调试是使用的RAW模式, 单片机发送的数据被原封不动的发送给PC端,PC端发送的数据也同样原封不动的发送回 单片机。   非RAW模式下,系统会对串口收到的数据中某些具有特殊意义的字符或组合进行转义。这种 工作模式的典型是在Linux下使用 minicom 配置交换机或串口登录

python 成语接龙-连接数据库

from xpinyin import Pinyin import pymysql while 1: conn = pymysql.connect( host='localhost', #本地连接 user='root', #数据库账户名 password='password', #数据库密码 db='dic',

Hero2902的博客 598

Linux_shell脚本中的stty

stty是用于配置终端(tty)设置的命令。它允许用户查看和修改与终端相关的各种参数。下面是stty。

Go_ahead_forever的博客 1104

Innovus每日精要 | 用setScanReorderMode优化扫描链,效率翻倍!

在数字后端物理设计的世界里,扫描链优化就像修路一样,既要保证数据流的顺畅,又要尽量减少绕路和资源浪费。它的主要任务是优化扫描链的连接方式,确保数据能快速、安全地流动。无论是多电压域设计、分区设计,还是复杂的逻辑门,它都能帮你搞定。后,你会发现它不仅能帮你节省时间,还能让你的设计更优雅、更高效。下次遇到扫描链问题时,不妨试试这些技巧,说不定你的设计效率会翻倍!,它能帮你搞定扫描链优化的那些事儿,让你的设计更高效、更优雅。接下来,我们看看这个命令的几个关键选项,以及它们的实际用途。扫描链优化看似枯燥,但掌握。

weixin_50820814的博客 1442

Shell学习笔记

shell 就是我们在与命令行环境 (CLI) 交互时使用的工具。如,Linux上的sh和bash,Windows上的cmd.exe和Powershell是指建立一条反向连接,在攻击者与受害者之间建立一个交互式 shell,使得攻击者可以远程控制被攻击者的计算机。是指在受害者计算机上开启一个服务端口,待攻击者与此端口建立连接后,即可获得一个交互式 shell,使得攻击者可以远程控制被攻击者的计算机。Netcat:是传统的网络“瑞士军刀”。可用于接收反向 shell,并连接到绑定在目标系统上的远程端口。

Che_ng的博客 587

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 527

什么是三极管推挽电路

当没有信号输入时,电源通过PNP三极管EB间的二极管,然后通过NPN三极管BE间而二极管到地,这时这两个三极管都是导通的,三极管很容易由于电流过大而损坏。当输入信号为VCC时,上面的三极管导通,下面的三极管截止,输出信号为VCC-0.7V,这个0.7V就是上面NPN三极管BE间的导通压降。比如上面的三极管导通,那么输出电压就是输入电压减去0.7V,所以下面的PNP三极管由于基极电压大于发射极电压,是不会导通的。这是一个三极管推挽电路,上面是一个NPN的三极管,下面是一个PNP的三极管。

谢谢关注“小鱼教你模数电”,各平台同号 3372

资料结束符EOF,system("stty raw")

文件结束符EOF,system(stty raw) 关于文件结束符EOFEOF 是 End Of File 的缩写。在C语言中,它是在标准 文件结束符EOF,system("stty raw") >> 关于文件结束符EOF EOF 是 End Of File 的缩写。 在C语言中,它是在标准库中定义的一个宏。 人们经常误认为 EOF 是从文件中读取的一个字符(牢记)。

隐士桃园的博客 2894

从零到一:Ubuntu22.04下VSCode与中文输入法的深度整合指南

本文详细介绍了在Ubuntu22.04系统中如何深度整合VSCode与中文输入法,包括环境准备、安装方案对比、输入法配置及常见问题解决方案。通过fcitx框架优化中文输入体验,提供从基础设置到高级调试的全方位指南,帮助开发者提升在Linux环境下的开发效率。

weixin_29158047的博客 481

Linux命令学习总结:dos2unix - unix2dos

命令简介: dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。 而unix2dos则是和dos2unix互为孪生的一个命令,它是将Linux&Unix格式文件转换为Windows格式文件的命令。 命令语法: dos2unix [options] [-c convmode] [-o file ...] [-

u011029104的专栏 1万+

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

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

记得诚 2802

Android oom_adj 更新原理(一)

通过之前的两篇博文《lmkd 机制详解》和《lmkd中adj score的算法剖析》中,根据计算出来的 min_score_adj 选择大于该值的 oom_adj 的进程进行 kill 处理。oom_adj 随着应用状态的不同其值也是伴随着变化的。本文将通过源码剖析 oom_adj 更新的原理。

私房菜 2655

《Unix/Linux编程实践教程》chapter6 为用户编程:终端控制和信号

chapter6 为用户编程:终端控制和信号 章节知识总结 软件工具从标准输入读取字节,进行一些处理,然后将包含结果的字节流写到标准输出。工具发送错误消息到标准错误输出,它们也被当做简单的字节流来处理。 终端驱动程序完成缓冲、回显、编辑和控制键处理等操作。缓冲和编辑包含在规范处理,当这些特征被启动,终端连接被称为处于规范模式。 规范模式,也被称为cooked模式,是用户常见的模式。驱动程序输入的字符保存在缓冲区,并且仅在接受到回车键时才将这些缓冲的字符发送到程序。缓冲数据使驱动程序可以实现最基本的编辑功

qq_39621037的博客 201

Arduino ESP32 Web服务器从microSD卡读取

Arduino ESP32 Web服务器从microSD卡读取 将网页内容放到SD卡中,当有客户端数据请求时,从SD卡读取信息进行发送,比起SPIFFS文件系统,更节约板上的硬件资源。 SD卡接线说明 ESP32----- SD D5(GPIO 5)-----CS D18(GPIO 18)-----SCK D19(GPIO 19)-----MISO D23()GPIO 23-----MOSI 文件放置 需要把文件放置到SD卡的根目录下。注意SD卡的格式FAT32格式。 实例代码 /*

perseverance51博客 1434

dos2unix Linux安装包

dos2unix Linux安装包 【下载地址】dos2unixLinux安装包 dos2unix Linux安装包为Linux用户提供了一个高效便捷的命令行工具,专门用于转换文本文件的换行符格式。无论是Windows的`\r\n`还是Unix的`\n`,它都能轻松处理,确保文件在不同操作系统间的兼容性。该安装包支持多种...

gitblog_06778的博客 693

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Linux】Linux的字符终端

Unix/Linux是多用户系统 1、主机连接多态字符终端 2、字符终端作为交互式(人机之间)输入输出设备 终端的构成 键盘、显示器、RS232串行通信接口 主机与终端的连接 1、主机中的串口卡(硬件)引出多个RS232串口 2、每个RS232接口通过电缆(3芯或更多芯)连接一台终端 3、RS232电缆的长度限制,早期要求小于10米,现在可达百米 终端与主机的功...

LED_of_Java的博客 2476

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

UNIX\LINUX相关指令

文件描述符文件描述符0、1、2 分别代表了标准输入(stdin)、标准输出(stdout)、标准错误(stderr)。这些文件描述符通常在终端环境下会自动关联到终端设备(比如键盘和显示器),但它们也可以被重定向到其他文件或设备上。crontab文件由 6 个域组成它们分别代表着时间设置和要执行的命令。这些域之间用空格或制表符分隔开来。这表示在每天的 8:00 分,执行这个脚本。awk是一种强大的文本处理工具,在Unix和类Unix操作系统中被广泛使用。

Cykangkk的博客 1207

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[Shell] [笔记]UNIX/Linux/OSX中的Shell编程

UNIX/Linux/OSX中的Shell编程(第4版) Stephen G. Kochan Patrick Wood著 文章目录UNIX/Linux/OSX中的Shell编程(第4版)基础1. 使用文件2. 使用目录3. 文件名替换*? 或 [][!chars]4. 文件名中的空格5. 标准输入/输出和I/O重定向6. 标准错误7. 管道8. Shell9. 正则表达式10. 常用字符的八进制...

Blanchedingding的博客 2475

Linux系统编程 —— 终端

1 终端 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),进程中,控制终端是保存在PCB中的信息,而fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户...

柯西丶不是你的博客 457

unix环境高级编程=终端IO 和 伪终端

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style type="text/css"> *{padding: 0px;margi

qq_37805832的博客 3155

Linux命令:dos2unix和unix2dos

dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。 而unix2dos则是和dos2unix互为孪生的一个命令,它是将Linux&Unix格式文件转换为Windows格式文件的命令。 实例: ...

bang152101的博客 519

Windows(CMD)、Mac(Terminal,基于 Unix)、Linux(终端,基于 Unix)常用终端命令的表格对照集合

但 Mac 依赖。

qq_59002866的博客 1424
上一篇: exit(0)与exit(1)、return区别
下一篇: C语言中的EOF和feof()
abelx
博客等级 码龄12年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值