linux的触摸屏之五:帧缓冲设备上较准界面的配置
(1)帧缓冲设备跟TTY的关系。需要关注tty跟帧缓冲设备的关系,一般情况下帧缓冲设备是可以独立操作的,但是如果为了保证单独占用不被抢占,似乎还要关联一个tty终端。这里用的是虚终端VT。
虚终端,也叫虚屏,它的英文名字为virtual terminal,缩写为VT或vt。在Unix系统用户中,虚终端有着广泛的应用。它解决了主控台单一交互界面的限制,使用户可在保护当前界面的情况下启用另一界面去做另一工作。我们可利用Unix系统提供的系统调用来编制虚终端程序,并可把它加入到我们的应用程序中去。
我们可利用ioctl函数操纵虚终端设备文件,实现与Unix系统内核的交互,得到我们所需要的服务。使用ioctl的具体形式如下:
int ioct1(int filedes,int request,…/*参数*/。request为请求的服务,随后的参数可为各种数据类型,视具体情况而定。
VT_OPENQRY 查找一个可利用的虚终端。
VT_SETMODE 设置虚终端模式(自动或进程控制)。
VT_GETSTATE 获取全部虚终端的状态信息。
VT_ACTIVATE 使在参数中指定的虚终端号为活动虚终端。如果指定的虚终端不处于打开状态或者不存在,调用将失败。
VT_WAITACTIVE 等待虚终端被激活,不需要参数。
有了上面的介绍,现在我们就可以实现虚终端了:
1,查找是否有可利用的虚终端,如没有,则结束。
2,打开可利用虚终端设备文件,以便进行。
3,利用ioctl的TCSETSW功能设置虚终端参数。
4,利用ioctl的VT_ACTIVATE功能激活虚终端,并利用VT_WAITACTIVE功能等待其可用。
5,用putenv函数设置环境变量。
至此,一个虚终端程序就实现了。
(2)open_framebuffer
static int con_fd, fb_fd, last_vt = -1;
static struct fb_fix_screeninfo fix;
static struct fb_var_screeninfo var;
static unsigned char *fbuffer;
static unsigned char **line_addr;
static int fb_fd=0;
static int bytes_per_pixel;
static unsigned colormap [256];
__u32 xres, yres;
#define TSLIB_FBDEVICE "/dev/graphics/fb0"
static char *defaultfbdevice = "/dev/graphics/fb0";
static char *defaultconsoledevice = "/dev/tty";
static char *fbdevice = NULL;
static char *consoledevice = NULL;
int open_framebuffer(void)
{
&nb
相关文档:
【实现功能】:Linux下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成 ......
一、新建并初始化版本库
1.新建代码仓库
# svnadmin create /home/myrepos
这样,我们就在/home目录下新建了版本库myrepos。
2.初始化代码仓库
#mkdir -p code/{branches,tags,trunk}
按照svn手册上的建议,我们版本库的布局采用branches/tags/trunk这样的三个目录。
然后可以将代码直接拷贝的trunk目录,也可以随后 ......
red hat linux 下安装 oracle 10g
racle考资料:
Oracle官方网站: http://download.oracle.com/docs/html/B10813_01/toc.htm
一、以root用户登录, 进行如下操作:
1 检查硬件要求
* 主要包括:
********************************************************************
* 内存: & ......
最近需要在Linux系统下编译多个Fortran程序,在网上搜索了一下,但是资料不多,也许因为这个问题比较简单,不值一提,但还是把我知道的
写出来,供大家参考:
方法一:
假如现在有两个Fortran程序fun.f90和main.f90,其中
main.f90是主程序,fun.f90是在主程序中调用的子程序,将这两个文件放到一个目录下,使 ......
ZZ 自http://dev.firnow.com/course/6_system/linux/Linuxjs/200896/139627.html
.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
---------------------------------------------
......