2017年12月22日

二分查找

摘要: #include int main(void) { int array[10] = {4, 12, 24, 36, 47, 58,59, 66, 77, 87}; int l =0, r= 9; int a = 87; while(1) { if(a >array[(l+r)/2]) l = (l+r)/2+... 阅读全文

posted @ 2017-12-22 10:54 131927 阅读(106) 评论(0) 推荐(0)

快速排序

摘要: 使用左指针l, 右指针r. 首先从数组里挑第0个元素的值作为key, 右指针从右往左,把每个数与key对比, 直到找到比key小的数, 把找到的数存到左指针指向的位置里, 左指针往右偏移一个位置. 这时右指针的移动结朿, 左指针开始往右移, 把指向的数与key对比, 直到找到比key大的数, 然后把 阅读全文

posted @ 2017-12-22 10:35 131927 阅读(112) 评论(0) 推荐(0)

2017年12月13日

双向链表

摘要: 双向链表 阅读全文

posted @ 2017-12-13 19:06 131927 阅读(124) 评论(0) 推荐(0)

链表——单链表的实现

摘要: 用单链表来记录用户输入的数值, 个数不确定。直到输入的数为-1为止 include <stdio.h>#include <stdlib.h>struct mylist { int data; struct mylist *next;};//用链表来记录用户输入的数值, 个数不确定。直到输入的数为-1 阅读全文

posted @ 2017-12-13 11:44 131927 阅读(176) 评论(0) 推荐(0)

Linux内核的学习(五)——字符设备驱动的函数

摘要: 当用户进程操作字符设备驱动,内核会根据设备号找到对应的cdev对象。 open/read/write这些接口就是组成VFS(虚拟文件系统)。 在Linux内核,用一个inode节点对象描述一个要操作的文件/设备文件,包括权限 ,设备号等信息,就是描述一个要操作的文凭的属性,一个文件可以打开很多次, 阅读全文

posted @ 2017-12-13 10:04 131927 阅读(233) 评论(0) 推荐(0)

2017年12月12日

Linux内核的学习(四)之字符设备驱动

摘要: c语言是面向过程的, 内核是有C语言来实现面向对象。但不全是。 ///////////////////// 内核提供对cdev对象操作的函数 字符设备驱动实现的基本步骤 编译加载驱动模块后,需要用”mknod /dev/设备文件名 c 主设备号 次设备号”来创建设备文件. 阅读全文

posted @ 2017-12-12 20:05 131927 阅读(167) 评论(0) 推荐(0)

Linux内核的学习(三)之字符设备驱动的设备号

摘要: 用户进程是通过什么来调用驱动? 系统编程,经常用open,read write 来操作设备文件来调用驱动。 crw-rw 1 root video 10, 175 Dec 11 17:45 agpgartcrw T 1 root root 10, 235 Dec 11 17:45 autofsdrw 阅读全文

posted @ 2017-12-12 18:02 131927 阅读(221) 评论(0) 推荐(0)

Linux内核的学习(二)

摘要: linux的驱动模块的参数 大家在学习C语言时,应该学过在运行C程序时,给模块里面的变量定义具体的值,内核是怎么实现的呢。 方法如下: Linux怎么定义全局变量(函数),驱动模块里默认情况下不管函数还是全局变量都是局部使用(相当于在函数/变量名前加了 “static”),要作为全局使用,需要使用导 阅读全文

posted @ 2017-12-12 16:55 131927 阅读(113) 评论(0) 推荐(0)

Linux内核的学习(一)

摘要: Linux内核里mmu已经启动,不能直接访问物理地址。 mmu,全称Memory Manage Unit, 中文名————存储器管理单元。 地址范围—— 计算机上的地址集合。(大小是由CPU的位数决定)32位——0 ~ 0xFFFFFFFF(4G), 64位——0~0xFFFFFFFFFFFFFFF 阅读全文

posted @ 2017-12-12 16:16 131927 阅读(368) 评论(0) 推荐(0)

导航