摘要: 1.声明input_dev结构体 static struct input_dev *buttons_dev;2.init函数中分配input_dev结构体并对其设置、注册/* 1. 分配一个input_dev结构体 */ buttons_dev = input_allocate_device... 阅读全文
posted @ 2015-10-10 09:50 丿踏遍青山人未老 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 1.首先构造file_operations结构体,并写出相关函数static struct file_operations first_drv_fops = {.owner = THIS_MODULE, /* 这是一个宏,推向编译模块时自动创建的__this_module变量 */.open = ... 阅读全文
posted @ 2015-10-10 09:06 丿踏遍青山人未老 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 应用程序注册信号处理函数 my_signal_fun();应用程序获取应用PID并告诉驱动 fcntl(fd, F_SETOWN, getpid());//获取pid int oflags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, oflags|FAS... 阅读全文
posted @ 2015-10-08 15:43 丿踏遍青山人未老 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 保存局部变量传递参数(当函数传递的参数超过4个时使用栈传递参数)保存寄存器的值 阅读全文
posted @ 2015-10-06 11:49 丿踏遍青山人未老 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 初始化的全局变量:数据段局部变量:栈malloc:堆未初始化的全局变量:bss段 阅读全文
posted @ 2015-10-06 10:59 丿踏遍青山人未老 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 今天与几个同学看到了一个函数指针定义:void (*f(int, void (*)(int)))(int)以前在C trap pit fails里面见过,但是文章里面介绍的很详细,但是往往使初学者抓不到重点, 结果弄的一头污水。这里就简单介绍一下这中函数指针的定义方法。什么是函数指针?这个问题从定义... 阅读全文
posted @ 2015-09-21 11:12 丿踏遍青山人未老 阅读(720) 评论(11) 推荐(1) 编辑
摘要: 转:深入理解递归函数的调用过程下面是个关于递归调用简单但是很能说明问题的例子: 1 /*递归例子*/ 2 #include 3 void up_and_down(int); 4 int main(void) 5 { 6 up_and_down(1); 7 return 0; 8 } 9 ... 阅读全文
posted @ 2015-09-07 09:28 丿踏遍青山人未老 阅读(683) 评论(0) 推荐(0) 编辑
摘要: Linux下为机器设置静态IP地址:vim /etc/sysconfig/network-scripts/ifcfg-eth0修改这个文件内容如下形式:# Intel Corporation 82541GI Gigabit Ethernet ControllerDEVICE=eth0BOOTPROT... 阅读全文
posted @ 2015-06-15 14:24 丿踏遍青山人未老 阅读(4684) 评论(0) 推荐(0) 编辑
摘要: 1.把ida目录下android_server传到设备的/data/local/tmp/cmd执行adb shell进入模拟器命令行1 su 2 cd /data/local/tmp/3 chmod 755 android_server ——<增加执行权限执行./android_server服务端给... 阅读全文
posted @ 2015-05-16 19:26 丿踏遍青山人未老 阅读(491) 评论(0) 推荐(0) 编辑
摘要: int poll(struct pollfd *fds,nfds_t nfds, int timeout);总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再来判断是否有文件可读,如果... 阅读全文
posted @ 2015-05-12 21:47 丿踏遍青山人未老 阅读(253) 评论(0) 推荐(0) 编辑