#物联网终端

伪终端之打开伪终端设备

各种平台打开伪终端设备的方法有所不同。在SingleUNIXSpecification的XSI扩展中包含了很多函数,试图统一这些方法。这些函数的基础是SVR4用于管理基于STREAMS的伪终端的一组函数。 posix_openpt用来打开下一个可用的伪终端主设备,该函数是可移植的。#include<st...
代码星球 ·2021-02-21

伪终端

引言在终端和运行的程序之间有一个终端行规程(见http://www.cnblogs.com/nufangrensheng/p/3575752.html中的图18-2),通过它我们能够在终端上设置特殊字符(退格、行删除、中断等)。但是,当一个登陆请求到达网络连接时,终端行规程并不是自动被加载到网络连接和登陆程序shell...
代码星球 ·2021-02-21

终端I/O之终端窗口的大小

大多数UNIX系统都提供了一种功能,可以对当前终端窗口的大小进行跟踪,在窗口大小发生变化时,使内核通知前台进程组。内核为每个终端和伪终端保存一个winsize结构:Structwinsize{    unsignedshort    ws_...
代码星球 ·2021-02-21

终端I/O之非规范模式

关闭termios结构中c_lflag字段的ICANON标志就使终端处于非规范模式。在非规范模式中,输入数据并不组成行,不处理下列特殊字符:ERASE/KILL/EOF/NL/EOL/EOL2/CR/REPRINT/STATUS/WERASE.如前所述,规范模式很容易:系统每次返回一行。但在非规范模式下,系统怎样才能知...
代码星球 ·2021-02-21

终端I/O之规范模式

规范模式很简单:发一个读请求,输入完一行后,终端驱动程序即刻返回。下列几个条件都会造成读返回:所要求的字节数已经读到时,读返回。无需读一个完整的行。如果都了部分行,也不会丢失任何信息,下一次读从前一次读的停止处开始。当读到一个行定界符时,读返回。在规范模式中以下5个字符被解释为"行结束":NL、EOL、EOL2、EOF...
代码星球 ·2021-02-21

(文件描述符0、1、2),(stdin、stdout、stderr),(终端设备)这三者之间的关系???

前言在Linux系统中,一切设备都看作文件。而每打开一个文件,就有一个代表该打开文件的文件描述符。程序启动时默认打开三个I/O设备文件:标准输入文件stdin,标准输出文件stdout,标准错误输出文件stderr,分别得到文件描述符0,1,2。实例现在来看一个 测试ttyname函数的实例(ttyname函...

终端I/O之终端标识

历史沿袭至今,在大多数UNIX系统中,控制终端的名字是/dev/tty.POSIX.1提供了一个运行时函数,可被用来确定控制终端的名字。#include<stdio.h>char*ctermid(char*ptr);返回值:若成功则返回指向控制终端名的指针,若出错则返回指向空字符串的指针如果ptr非空,则它...
代码星球 ·2021-02-21

终端I/O之行控制函数

下列4个函数提供了终端设备的行控制能力。其中,filedes引用一个终端设备,否则出错返回,errno设置为ENOTTY。#include<termios.h>inttcdrain(intfiledes);inttcflow(intfiledes,intaction);inttcflush(intfiled...
代码星球 ·2021-02-21

终端I/O之波特率函数

波特率(baudrate)是一个以往采用的术语,现在它指的是"位/秒"(bitspersecond)。虽然大多数终端设备对输入和输出使用同一波特率,但是只要硬件许可,可以将它们设置为两个不同值。#include<termios.h> speed_tcfgetispeed(conststructte...
代码星球 ·2021-02-21

终端I/O之stty命令

所有的终端选项标志,在程序中都可用tcgetattr和tcsetattr函数(http://www.cnblogs.com/nufangrensheng/p/3576682.html)进行检查和更改。在命令行(或shell脚本)中则可用stty(1)命令进行检查和更改。stty(1)命令是http://www.cnbl...
代码星球 ·2021-02-21

终端I/O之终端选项标志

http://www.cnblogs.com/nufangrensheng/p/3575752.html中的表18-1至表18-4中列出的所有选项标志(除屏蔽标志外)都用一位或几位(设置或清除)表示,而屏蔽标志则定义多位,它们组合在一起,于是可以定义多个值。屏蔽位有一个定义名,每个值也有一个名字。例如,为了设置字符长度...
代码星球 ·2021-02-21

终端I/O之获得和设置终端属性

使用函数tcgetattr和tcsetattr可以获得或设置termios结构。这样也可以检测和修改各种终端选择标志和特殊字符,以使终端按我们所希望的方式进程操作。#include<termios.h>inttcgetattr(intfiledes,structtermios*termptr);inttcs...
代码星球 ·2021-02-21

终端I/O之特殊输入字符

POSIX.1定义了11个在输入时作特殊处理的字符。实现定义了另外一些特殊字符。表18-6摘要列出了这些特殊字符。表18-6终端特殊输入字符在POSIX.1的11个特殊字符中,可将其中9个更改为几乎任何值。不能更改的两个特殊字符是换行符和回车符(和),有些实现也不允许更改STOP和START字符。为了进行修改,只要更改...
代码星球 ·2021-02-21

终端I/O之综述

终端I/O有两种不同的工作模式:规范模式输入处理(Canonicalmodeinputprocessing)。在这种模式中,终端输入以行为单位进行处理。对于每个读要求,终端驱动程序最多返回一行。非规范模式输入处理(Noncanonicalmodeinputprocessing)。输入字符并不组成行。如果不作特殊处理,则...
代码星球 ·2021-02-21

进程关系之控制终端

会话和进程组有一些其他特性:一个会话可以有一个控制终端(controllingterminal)。这通常是登录到其上的终端设备(在终端登录情况下)或伪终端设备(在网络登录情况下)。建立与控制终端连接的会话首进程被称为控制进程(controllingprocess)。一个会话中的几个进程组可被分成一个前台进程组(fore...
代码星球 ·2021-02-21
首页上一页12345...下一页尾页