加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

终端tty、虚拟控制台及FrameBuffer的切换过程

发布时间:2016-08-04 20:45:06 所属栏目:Unix 来源:站长网
导读:一、区分/dev/tty、/dev/console、/dev/pts、/dev/ttyn /dev/ttySn 通常我们在linux下看到的控制台(console)是由几个设备完成的。分别是/dev/ttyN.通常使用热键

该调用在v_active字段返回活动虚终端号,在v_state字段中可获得全部虚终端状态的位掩码(v_state的位x是虚终端x的状态,该位为1说明对应的虚终端是打开状态,否则为可利用状态)。VT_SENDSIG 指定要发送给虚终端(在v_state中)的位屏蔽的信号(在v_signa1中)。用于ioct1的系统调用的参数是一个指向vt_stat结构的指针(结构定义见前面VT_GETSTATE)。 VT_RELDISP 用于告诉虚终端管理器进程是否已经释放了显示。一个零值指示拒绝释放显示。 VT_ACTIVATE 使在参数中指定的虚终端号为活动虚终端。″VT″管理器将产生一个切换,如同在键盘上按组合热键一样。如果指定的虚终端不处于打开状态或者不存在,调用将失败,并置errno的值为ENXI0。 VT_WAITACTIVE 等待虚终端被激活,不需要参数。

有了上面的介绍,现在我们就可以实现虚终端了:

1?查找是否有可利用的虚终端,如没有,则结束。

2?打开可利用虚终端设备文件,以便进行。

3?利用ioct1的TCSETSW功能设置虚终端参数,其作用同Unix的stty命令一样。

4?利用ioct1的VT_ACTIVATE功能激活虚终端,并利用VT_WAITACTIVE功能等待其可用。

5?用putenv函数设置环境变量。

至此,一个虚终端程序就实现了(当然,是利用Unix系统提供的功能,但它与Unix提供的newvt命令的实现并无区别)。在这个虚终端里,我们可方便地实现我们自己想要的功能,而不必担心会破坏原来的环境。

三 、虚拟控制台的切换过程

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读