在做SDL至Android的移植时,键盘事件是能正常捕获到,看了SLD的源码,发现用的device是 /dev/tty0,但是鼠标叫是不能成功捕获,总是得到 0,运行命令查看devices时,显示如下:
# cat /proc/bus/input/devices
cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="qwerty"
P: Phys=
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=kbd mouse0 event0
B: EV=2f
B: KEY=ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff f
fffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe
B: REL=3
B: ABS=7
B: SW=1
进入 /dev/input 目录,发现在3个device文件:mice,mouse0,event0,分别 cat这3个文件,发现只有 event0 有反应,如下图:
而且不管是点击鼠标还是按键,都有反应,但显示的是一堆乱码,而且点击鼠标出来的东西要多一点,难道这就是传说是的 touchscreen ?!
为了分析 event0 的返回值,写了一段代码 testmice.c,如下:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <linux/input.h>
stat ......
/*
**判断C?行??境的程序
*/
/*
**静?初始化
*/
int static_variable=5;
void
f()
{
register int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10;
register char *c1, *c2, *c3, *c4, *c5, *c6, *c7 , *c8, *c9, *c10;
extern int a_very_long_name_to_sec_how_long_they_can_be;
double dbl;
int func_ret_int();
double func_ret_double();
char *func_ret_char_ptr();
/*
**寄存器?量的最大数量
*/
i1 = 1; i2 = 2; i3 = 3; i4 = 4; i5 = 5;
i6 = 6; i7 = 7; i8 = 8; i9 = 9; i10 = 10;
c1 = (char *)110; c2 = (char *)120;
c3 = (char *)130; c4 = (char *)140;
c5 = (char *)150; c6 = (char *)160;
c7 = (char *)170; c8 = (char *)180;
c9 = (char *)190; c10 = (char *)200;
/*
**外部名字
*/
a_very_long_name_to_sec_how_long_they_can_be = 1;
/*
**函数?用/返回??,堆??(?程活???)
*/
i2 = func_ret_int(10,i1,i10);
dbl = func_r ......
描述 给定一个整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 = 2 + 1, 4 = 1 + 3。 输入 第一行是一个整数T,表示一共有多少组数据。 1<= T <= 100
接下来的每组数据共两行,第一行是数列中数的个数n ( 1 <= n <= 100),第二行是由n个整数组成的数列。
输出 对于每组数据,输出一个整数(占一行),就是数列中等于其他两个数之和的数的个数。 样例输入 2
4
1 2 3 4
5
3 5 7 9 10
样例输出 2
1注意:这道题包括0和负数,故份两种情况。#include <stdio.h>
int main(){
int n,t,m,i,j,k,sum,f,T,ff;
scanf("%d",&T);
long a[200];
while(T--){
sum=0;ff=0;
scanf("%d",&n);
for(i=1; i<=n; i++){
scanf("%ld",&a[i]);
if(a[i]<=0)
ff=1;
}
for(i=1; i<n; i++)
for(j=i+1; j<=n; j++)
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
if(ff==0){
for(i=n; i>2 ......
解决步骤:
gylu@dell-desktop:~$ sudo apt-get install ckermit
显示安装过程
gylu@dell-desktop:~$gedit ~/.kermrc
输入下面内容后保存.kermrc退出:
set line /dev/ttyS0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
c
gylu@dell-desktop:~$kermit
......
解决步骤:
gylu@dell-desktop:~$ sudo apt-get install ckermit
显示安装过程
gylu@dell-desktop:~$gedit ~/.kermrc
输入下面内容后保存.kermrc退出:
set line /dev/ttyS0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
c
gylu@dell-desktop:~$kermit
......
学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。
下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。
或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。
下面是我们的代码:
/*thread_example.c : c multiple thread programming in linux
*author : falcon
*E-mail : tunzhj03@st.lzu.edu.cn
*/
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1()
{
printf ("thread1 : I'm thread 1\n");
for (i = 0; i < MAX; i++)
{
printf("thread1 : number = %d\n",number);
pthread_mutex_lock(&mut);
number++;
pthread_mutex_unlock(&mut);
sleep(2);
}
printf("thread1 :主函数在等我完成任务吗?\n");
pthread_exit(NULL);
} ......
学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。
下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。
或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。
下面是我们的代码:
/*thread_example.c : c multiple thread programming in linux
*author : falcon
*E-mail : tunzhj03@st.lzu.edu.cn
*/
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1()
{
printf ("thread1 : I'm thread 1\n");
for (i = 0; i < MAX; i++)
{
printf("thread1 : number = %d\n",number);
pthread_mutex_lock(&mut);
number++;
pthread_mutex_unlock(&mut);
sleep(2);
}
printf("thread1 :主函数在等我完成任务吗?\n");
pthread_exit(NULL);
} ......
1.首先看懂官方文档
2.icbc.jar这个jar包一定要要到!这是进行base64加密解密,以及
使用工行证书签名的重要工具类。
3.采取纯Java编码,要确保用对证书,放在D盘根目录下(其他路径亦可)。
4.编写JSP接口页面,字段必须与工行的一一对应。
而且如tranData等字段进行base64加密后或者签名后 必须以"“双引号扩上才可以。不然
工行接口那边不会识别
4.进行字段的拼接与加密等操作,并作为表单的属性传到接口处。
action地址按照工行客服给的指到一个界面,进行相应的调试。
这时候需要安装工行的网银客户端 调试界面的验证码等才会出现。
工行连调时,时间是由工行那边决定的。
工行的金额是按照分计算的。 ......
1.首先看懂官方文档
2.icbc.jar这个jar包一定要要到!这是进行base64加密解密,以及
使用工行证书签名的重要工具类。
3.采取纯Java编码,要确保用对证书,放在D盘根目录下(其他路径亦可)。
4.编写JSP接口页面,字段必须与工行的一一对应。
而且如tranData等字段进行base64加密后或者签名后 必须以"“双引号扩上才可以。不然
工行接口那边不会识别
4.进行字段的拼接与加密等操作,并作为表单的属性传到接口处。
action地址按照工行客服给的指到一个界面,进行相应的调试。
这时候需要安装工行的网银客户端 调试界面的验证码等才会出现。
工行连调时,时间是由工行那边决定的。
工行的金额是按照分计算的。 ......