易截截图软件、单文件、免安装、纯绿色、仅160KB

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 定时器

【实现功能】:Linux下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成 ......

ubuntu linux ppp 拨号 GPRS

一 首先安装ppp, 用sudo apt-get install ppp
二 拨号上网, 一共有3种方式
1.使用命令 pppd call somescript 的方式
- 在 /etc/ppp目录下,建立3个文件:pap-secrets,chap-secrets,gprs-connect-chat
  和一个目录:peers
  在peers目录下建立一个文件gprs
这4个文件的内容如下:
---------------------- ......

linux进程状态浅析

众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。
  在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。
linux内核对进程的这种管理分两个方面:进 ......

配置自己的Linux svnserve服务器

一、新建并初始化版本库
1.新建代码仓库
# svnadmin create /home/myrepos
这样,我们就在/home目录下新建了版本库myrepos。
2.初始化代码仓库
#mkdir -p code/{branches,tags,trunk}
按照svn手册上的建议,我们版本库的布局采用branches/tags/trunk这样的三个目录。
然后可以将代码直接拷贝的trunk目录,也可以随后 ......

SVN版本管理笔记(Linux)

一、       
SVN
服务器环境的搭建
我们开发的项目属于基于
ARM9

linux
系统的嵌入式管理软件,整个开发编译环境必须是在
linux
下面。因此,
SVN
服务器的环境也必须是在
linux
系统。
现有的服务器环境:操作系统:
Redhat Linux AS4U4
,内核版本为:
2.6.13
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号