当前位置: 技术问答>linux和unix
针对framebuffer编程问题
来源: 互联网 发布时间:2016-06-16
本文导语: 我的代码在终端里运行可以通过framebuffer显示图片,但是光标提示符会破坏图片,出现一小快而黑快和一个闪动的光标提示符,可以输入字符,但是 我的程序没有从键盘读入的代码。 我看了一些源代码,除了对framebu...
我的代码在终端里运行可以通过framebuffer显示图片,但是光标提示符会破坏图片,出现一小快而黑快和一个闪动的光标提示符,可以输入字符,但是
我的程序没有从键盘读入的代码。
我看了一些源代码,除了对framebuffer的一些基本操作,包括open,ioctl,没有什么特别的,但是很多源代码都编译不通过,我也没有去改,不知道别人写的是不是存在这样的问题,但是这个现象很值得思考
mplayer在用framebuffer播放视频的时候,命令提示符的光标是不闪的,而且经过实验,这个时候bash实际上是已经失去了对屏幕输出的控制。而我的程序,即使while(1);bash不会因为等待我的程序结束而暂时挂起,而且就算是用wait指令,命令提示符还是会闪的。
同时,alt+ctrl+f1~f7切换终端都无效,关于这点,我猜mplayer不可能修改了系统的键盘事件,使系统失去对键盘事件的通知。
我猜测mplayer是利用fcntl锁定了/dev/fb0,问题是我在mplayer的代码里找不到这句(或者没看到……),但是我自己的程序里锁定是无效的,系统返回成功,但是终端里仍然可以输入字符,光标还在闪破坏图片(>_
我的程序没有从键盘读入的代码。
我看了一些源代码,除了对framebuffer的一些基本操作,包括open,ioctl,没有什么特别的,但是很多源代码都编译不通过,我也没有去改,不知道别人写的是不是存在这样的问题,但是这个现象很值得思考
mplayer在用framebuffer播放视频的时候,命令提示符的光标是不闪的,而且经过实验,这个时候bash实际上是已经失去了对屏幕输出的控制。而我的程序,即使while(1);bash不会因为等待我的程序结束而暂时挂起,而且就算是用wait指令,命令提示符还是会闪的。
同时,alt+ctrl+f1~f7切换终端都无效,关于这点,我猜mplayer不可能修改了系统的键盘事件,使系统失去对键盘事件的通知。
我猜测mplayer是利用fcntl锁定了/dev/fb0,问题是我在mplayer的代码里找不到这句(或者没看到……),但是我自己的程序里锁定是无效的,系统返回成功,但是终端里仍然可以输入字符,光标还在闪破坏图片(>_