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

framebuffer的多进程操作

发布时间:2013-06-19 09:11:01 所属栏目:Linux 来源:站长网
导读:打开了framebuffer,你可以在其上画图,写字。屏幕上就及时能显示你往framebuffer里填充的内容。但是在多进程操作framebuffer的环境下,比如在一个拥有窗口管理
打开了framebuffer,你可以在其上画图,写字。屏幕上就及时能显示你往framebuffer里填充的内容。但是在多进程操作framebuffer的环境下,比如在一个拥有窗口管理环境下,操作framebuffer显示了全屏的一幅图片,此时窗口管理器有个进程在不断的更新系统当前时间,这样就存在当前图片显示不完整的情况。

此时实际上只需要当前进程显示完整的一幅图片,改图片的显示区域不希望被其他操作framebuffer的进程所干扰。 如何避免这种情况的发生?方法就是操作tty设备。原理很简单,就是打开一个新的终端tty设备,并把该设备激活,设为图形模式,让改终端独占 framebuffer设备,然后再输出图形,这样,即使有其他进程在操作framebuffer,当前终端的framebuffer就不会被重刷,从而实现了稳定的输出。

一般来说linux系统中会存在7个tty设备,tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上.tty1--tty6都称为虚拟终端设备,那么打开哪一个新的tty设备呢?先用ioctl(ConsoleFD, VT_OPENQRY, &vtnumber)查询一下当前打开的虚拟终端数量,一般的发行版都是打开6个,即tty1~tty6,这个可以在/etc/inittab里面控制。另外,tty0是系统自动打开的,但不用于用户登录,所以查询的结果是一共打开7个,vtnumber=7,这个数字也就是下一次可用的终端号,即 tty7。

(编辑:佛山站长网)

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

    热点阅读