摘要:
1,python如果import指定文件夹下的文件答:将路径添加到sys.path,然后import,需要解决一个问题,避免由于之前存在一个同名模块导致加载失败[cpp]view plaincopyimportsys;ifnot"/home/a/"insys.path:sys.path.append... 阅读全文
posted @ 2015-01-20 20:32
知了112
阅读(142)
评论(0)
推荐(0)
摘要:
1,python对字符串加密常见的方法:[python]view plaincopy1.最简单的方法是用base64:importbase64s1=base64.encodestring('helloworld')s2=base64.decodestring(s1)prints1,s2#aGVsbG... 阅读全文
posted @ 2015-01-20 20:31
知了112
阅读(316)
评论(0)
推荐(0)
摘要:
python图像用户编程1,导入模块import Tkinter或者from Tkinter import *2,创建顶层窗口对象top=Tkinter.Tk()3,在顶层窗口对象上创建各个功能模块Tk有两个坐标管理器用来协助将组件放在正确的位置,Packer,另外一个管理器是网格Grid4,将GU... 阅读全文
posted @ 2015-01-20 20:30
知了112
阅读(189)
评论(0)
推荐(0)
摘要:
1,利用python计算文件crc值[python]view plaincopydeffileCRC32(file,crc32,buf):crc32^=0xfffffffffortmpinbuf:crc32=crc32_table[(crc32^ord(tmp))&0xff]^((crc32>>8)... 阅读全文
posted @ 2015-01-20 20:29
知了112
阅读(202)
评论(0)
推荐(0)
摘要:
14,python如何创建进程并在父子进程通信示例代码如下:[cpp]view plaincopyimportos,sysprint"I'mgoingtoforknow-thechildwillwritesomethingtoapipe,andtheparentwillreaditback"r,w=... 阅读全文
posted @ 2015-01-20 20:28
知了112
阅读(156)
评论(0)
推荐(0)
摘要:
11,如何编译编译python脚本为pyc格式[cpp]view plaincopy#!/usr/bin/pythonimportpy_compile;importsys;file=raw_input("enteryourfilename");py_compile.compile(file);sys... 阅读全文
posted @ 2015-01-20 20:27
知了112
阅读(171)
评论(0)
推荐(0)
摘要:
1,python中if __name__ == "__main__":的作用判断当前的模块是被直接调用还是被直接执行用的,如果当前模块是被调用的,那么if __name__ == "__main__":之后的语句将不会被执行,如果当前的模式是直接被执行的,那么if __name__ == "__ma... 阅读全文
posted @ 2015-01-20 20:26
知了112
阅读(252)
评论(0)
推荐(0)
摘要:
1、解释型语言:是边读源程序边执行。而编译型语言则是将源代码编译成目标代码后执行。以后在执行时就不需要编译了2, python是区分大小写的,3,python是根据行缩进来区别模块和函数的,所以对代码的风格要求比较高,依赖缩进来区分代码层次,最好使用tab键缩进4,常量名所有字母大写,由下划线来连接... 阅读全文
posted @ 2015-01-20 20:25
知了112
阅读(200)
评论(0)
推荐(0)
摘要:
一,请求处理块设备的处理函数里没有read write等函数,所有对块设备的请求如读取 写入等都是通过request函数处理的。request函数的原型是void request(request_queue_t *queue);request函数的处理是异步的。每一个设备都有一个请求队列,当请求队列... 阅读全文
posted @ 2015-01-20 20:24
知了112
阅读(583)
评论(0)
推荐(0)
摘要:
一,中断处理函数中断处理函数运行在中断上下文,不可抢占、调度。中断上下文编程需要注意以下几点: 不能睡眠或调用 schedule 放弃CPU 不能调用任何可能睡眠的函数,例如:获取信号量 不能访问用户空间数据,例如:copy_from_user,因为它不是在进程上下文中执行的。 执行时间尽可能短in... 阅读全文
posted @ 2015-01-20 20:23
知了112
阅读(217)
评论(0)
推荐(0)
摘要:
1,在/sys/class/目录下创建一个设备节点,比如创建一个class_test_usb的设备节点[cpp]view plaincopystaticstructcalss*test_class;test_class=class_creat(THIS_MODULE,"class_test_usb"... 阅读全文
posted @ 2015-01-20 20:22
知了112
阅读(257)
评论(0)
推荐(0)
摘要:
一,ioctl使用实例ioctl使用实例驱动程序.h文件 memdev.h[cpp]view plaincopy/*定义幻数*/#defineMEMDEV_IOC_MAGIC'k'/*定义命令*/#defineMEMDEV_IOCPRINT_IO(MEMDEV_IOC_MAGIC,1)#define... 阅读全文
posted @ 2015-01-20 20:21
知了112
阅读(388)
评论(0)
推荐(0)
摘要:
一,注册字符设备[cpp]view plaincopy#defineGLOBALMEM_MAJOR256#defineGLOBALMEM_SIZE0X1000//4kstaticintchar_major=GLOBALMEM_MAJOR;//主设备号structchartest_dev{struct... 阅读全文
posted @ 2015-01-20 20:20
知了112
阅读(342)
评论(0)
推荐(0)
摘要:
一,块设备的注册1,linux中默认的块设备的最大主设备号为255,调用register_blkdev(unsigned int major,const char*name)来注册块设备,如果major参数为0的时候那么从系统1到255中选择一个最大的没有使用的号作为当前设备的块设备号,name是在... 阅读全文
posted @ 2015-01-20 20:19
知了112
阅读(550)
评论(0)
推荐(0)
摘要:
一,主设备号和次设备号代表的含义?linu内核是如果根据主设备号找驱动,次设备号找设备的。答:通常一个主设备号代表一个驱动,比如在block设备中,一个主设备号代表一个emmc设备,不同次设备号代表的是不同的分区Linux内核允许多个驱动共享一个主设备号,但更多的设备都遵循一个驱动对一个主设备号的原... 阅读全文
posted @ 2015-01-20 20:18
知了112
阅读(921)
评论(0)
推荐(0)
摘要:
1,在/proc文件系统下创建节点的APIhttp://www.cnblogs.com/ziziwu/archive/2011/10/20/2218975.html struct proc_dir_entry *create_proc_entry (const char *name, mode_t ... 阅读全文
posted @ 2015-01-20 20:17
知了112
阅读(1072)
评论(0)
推荐(0)
摘要:
http://www.cnblogs.com/hanyan225/archive/2010/10/28/1863854.html1,概念DMA是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制。使用DMA可以是系统CPU从实际的IO数据传输过程中摆脱出来,从而大大提供系统吞吐... 阅读全文
posted @ 2015-01-20 20:16
知了112
阅读(1653)
评论(0)
推荐(0)
摘要:
1,gendisk结构体在linux内核中,使用gendisk结构体来表示一个实际的磁盘设备的抽象,结构体定义如下所示:[cpp]view plaincopystructgendisk{intmajor;//主设备号intfirst_minor;//次设备号intminors;//最大次设备数,如果... 阅读全文
posted @ 2015-01-20 20:15
知了112
阅读(1165)
评论(0)
推荐(0)
摘要:
1,区别块设备和字符设备:块设备是系统中能随机访问固定大小的数据片的硬件。,扇区是所有块设备物理上的最小可寻址单位,通常大小为512Byte,块是文件系统的最小寻址单位,大小是扇区的整数倍,同时不能超过一个页的大小~操作块设备的时候需要在内存中有一个对应的缓冲区,用struct buffer_hea... 阅读全文
posted @ 2015-01-20 20:14
知了112
阅读(505)
评论(0)
推荐(0)
摘要:
一,内核模块的概念经常在内核驱动代码看到类似fs_init()等驱动初始化函数,那么这个和module_init()函数的差别在哪里,宏定义__define_initcall(level,fn)对于内核的初始化很重要,他指示编译器在编译的时候,将一系列初始化函数的起始地址值按照一定的顺序放在一个se... 阅读全文
posted @ 2015-01-20 20:13
知了112
阅读(317)
评论(0)
推荐(0)
摘要:
1,以下为示例代码:[cpp]view plaincopy#include#include#include#include#includeMODULE_LICENSE("DualBSD/GPL");staticchar*Version="2.0.1";staticintmy_match(struct... 阅读全文
posted @ 2015-01-20 20:11
知了112
阅读(422)
评论(0)
推荐(0)
摘要:
一,桶排序以下代码转自:桶排序[cpp]view plaincopy#include#includeusingnamespacestd;structNode{doublevalue;Node*next;};//桶排序主程序voidbucketSort(double*arr,intlength){No... 阅读全文
posted @ 2015-01-20 20:10
知了112
阅读(136)
评论(0)
推荐(0)
摘要:
一,单链表插入操作[cpp]view plaincopytypedefstructNODE{structNODE*link;intvalue;}Node;#include#include#defineFALSE0#defineTRUE1ints_insert(Node**rootp,intnew_v... 阅读全文
posted @ 2015-01-20 20:09
知了112
阅读(494)
评论(0)
推荐(0)
摘要:
linux内核————队列linux内核——队列定义:[cpp]view plaincopystruct__kfifo{unsignedintin;//入队偏移,写索引unsignedintout;//出队偏移,读索引unsignedintmask;unsignedintesize;void*dat... 阅读全文
posted @ 2015-01-20 20:08
知了112
阅读(264)
评论(0)
推荐(0)
摘要:
一,各种排序算法比较各种排序算法比较二,相关概念1、稳定排序和非稳定排序简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法是稳定的。反之,就是非稳定的。比如:一组数排序前是a1,a2,a3,a4,a5,其中a2=a4,经过某种排序后为a1,a2,a4,... 阅读全文
posted @ 2015-01-20 20:07
知了112
阅读(333)
评论(0)
推荐(0)
摘要:
一,计数排序计数排序[cpp]view plaincopy#includevoidCOUNTINGSORT(int*A,int*B,intarray_size,intk){intC[k+1],i,value,pos;for(i=0;i=0;i--){value=A[i];pos=C[value];B... 阅读全文
posted @ 2015-01-20 20:06
知了112
阅读(154)
评论(0)
推荐(0)
摘要:
数据结构---如何节省空间1,稀疏矩阵稀疏矩阵定义:对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。如果矩阵中每一个点都用数组方式表示,那么会浪费很大的空间,因为大部分矩阵中的点的值都为0,因此可以采用一个一维数组表示n列,然后每一列采用一个链表... 阅读全文
posted @ 2015-01-20 20:05
知了112
阅读(245)
评论(0)
推荐(0)
摘要:
1,分治思想计算输入向量中任何连续子向量中的最大和。[31,-41,59,26,-53,58,97,-93,-23,84]直接算法:[cpp]view plaincopymaxsofar=0fori=[0,n)sum=0forj=[i,n)sum+=x[j]maxsofar=max(maxsofar... 阅读全文
posted @ 2015-01-20 20:04
知了112
阅读(317)
评论(0)
推荐(0)
摘要:
linux内核使用bitmap相关1,声明一个bitmap数组,可以表示100个bit,数组名字是bitmap[cpp]view plaincopyDECLARE_BITMAP(bitmap,100)相关宏定义如下:[cpp]view plaincopy#defineDECLARE_BITMAP(n... 阅读全文
posted @ 2015-01-20 20:03
知了112
阅读(164)
评论(0)
推荐(0)
摘要:
1,二分查找:点击打开链接[cpp]view plaincopyintFind(intarr[],intkey,intlength){assert(arr!=NULL&&length>0);intlow=0,high=length,mid;while(lowkey)high=mid-1;elselo... 阅读全文
posted @ 2015-01-20 20:01
知了112
阅读(155)
评论(0)
推荐(0)
摘要:
1,堆排序概念点击打开链接点击打开链接堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2。它的左右子结点下标分别为2 * i + 1和2 * i + 2。如第0个结点左右子结点下标分别为1和2堆的插入与... 阅读全文
posted @ 2015-01-20 20:00
知了112
阅读(156)
评论(0)
推荐(0)
摘要:
1,冒泡排序[cpp]view plaincopyvoidbubblesort(intr[],intn){/*elementsarestoredinr[1]tor[n]*/inti,j,flag;inttemp;flag=1;i=1;while((ii;j--)/*内循环控制一趟排序的进行*/if(... 阅读全文
posted @ 2015-01-20 19:59
知了112
阅读(141)
评论(0)
推荐(0)
摘要:
1,求两个数的最大公约数[cpp]view plaincopyintgcd(inti,intj){while(i!=j){if(i>j){i-=j;}else{j-=i;}}}2,将abcdefg 字符串向左移动三位变成 defgabc方法:第一步:abcdefg ---> cbadefg第二步:c... 阅读全文
posted @ 2015-01-20 19:58
知了112
阅读(260)
评论(0)
推荐(0)
摘要:
37LinkListreverse_link(LinkListlist)38{39if(NULL==list40||NULL==list->next)41returnlist;424344LinkListtemp,prev,next;4546prev=list;47temp=list->next;4... 阅读全文
posted @ 2015-01-20 19:57
知了112
阅读(141)
评论(0)
推荐(0)
浙公网安备 33010602011771号