自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

转载 Linux下的调试工具

http://blog.csdn.net/absurd/archive/2006/02/28/612612.aspx1.mtrace在linux下开发应用程序,用C/C++语言的居多。内存泄露和内存越界等内存错误,无疑是其中最头疼的问题之一。glibc为解决内存错误提供了两种方案:一种是hook内存管理函数。hook内存管理函数后,你就可以通过记下内存分配的历史记录,在程序终止时查看是否有内存泄露,这样就可以找出内存泄露的地方了。你也可以通过在所分配内存的首尾写入特殊的标志,在释放内存时检查该标志是否被破坏

2011-01-27 10:34:00 531

转载 句柄

1.句柄是什么?在windows中,句柄是和对象一一对应的32位无符号整数值.对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象。2.为什么我们需要句柄?更准确地说,是windows需要句柄。windows需要向程序员提供必要的编程接口,在这些接口中,允许程序员访问、创建和销毁对象。但是,出于封装的考虑,windows并不想向程序员返回指针。指针包含了太多的信息。首先指针给出了对象存储的确切位置;其次,要操作一个指针,程序员必须知道指针所指对象的内部结构特征,也即,windows必须向程序员暴露相应的数据

2011-01-26 23:19:00 1738

原创 Tiny qemu arm system with a DirectFB interface

<br />http://free-electrons.com/community/demos/qemu-arm-directfb/

2011-01-23 13:45:00 568

原创 单向链表的排序

<br />快速排序非常适合在数组上实现,但不适合在链表上实现,可以在链表上实现的有价值的排序算法主要有插入排序,归并插入排序和基数排序3种。<br /> <br /> 

2011-01-23 11:33:00 650

原创 UNIX Domain Socket IPC

<br />socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。UNIX Domai

2011-01-19 23:03:00 440

转载 VC 常用插件和界面库

<br />VC 常用插件  <br />1.Visual Assist(强烈推荐)<br />http://www.wholetomato.com/ <br />VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误等等以外,最新的版本中还在<br />WorkSpace窗口中加入一个VA View,可以更方便的查找工程中的文件、类和变量。<br /> <br />2.WndTabs(强烈推荐)<br />

2011-01-19 19:09:00 596

原创 lib viewer

<br />http://www.codeproject.com/KB/debug/LibView.aspx

2011-01-18 20:20:00 648

原创 linux驱动开发的连接

<br /><br />http://kernelnewbies.org/<br />http://free-electrons.com/docs/<br />http://lwn.net/Kernel/LDD3/

2011-01-18 20:18:00 341

原创 嵌入式web server

<br />嵌入式server包括:shttpd,appweb,boa,go ahead server等。<br /> <br /><br />如果用于运行ucLinux的arm9上,就没有什么问题,而用于运行ucOS的arm7上,则有很多限制,需要进行很多的移植工作。<br />LibHttpd的,采用ANSI C编写,仅从介绍上来看,非常适合arm7的嵌入式设备使用。<br /> <br />后面有必要研究这些server的源码!!!<br /> 

2011-01-18 20:02:00 618

转载 一些机器视觉网站

<br /><br />Computer Vision <br /> <br />Computer Vision Homepage, Carnegie Mellon University<br />www.cs.cmu.edu/~cil/vision.html <br /> <br />Annotated Computer Vision Bibliography <br />http://iris.usc.edu/Vision-Notes/bibliography/contents.html <br />h

2011-01-18 15:13:00 559

原创 vc查看宏展开之后的结果的查看方式

查看展开后的宏:vc:project   menu->settings  project   settings   dialog  C/C++   tab  category   :   preprocessor  Project   options:  最后加上   /P  rebuild   all,会产生于.cpp同名的.i文件。在这里宏被展开了 

2011-01-18 14:54:00 1741

原创 交换排序

<br />交换排序的基本方法是:两两比较待排序记录的排序关键字,并交换不满足顺序要求的那些偶对,直到全部满足为止。<br /> <br />冒泡排序:<br />通过无序区中相邻记录关键字间的比较和位置交换,使关键字最小的记录如气泡一般逐渐往上“漂浮”至“水面”。整个算法是从最下面的记录开始,对每两个相邻的关键字进行比较,且使关键字较小的记录换至关键字较大的记录之上,使得经过一趟冒泡排序后,关键字最小的记录,并把它换在第二个位置上。依此类推,一直到所有记录都有序为止。<br /> <br /> <br /

2011-01-15 12:10:00 391

原创 http://www.linuxgraphics.cn/home/index.html

<br />http://www.linuxgraphics.cn/home/index.html

2011-01-11 16:41:00 1441

原创 Linux守护进程

Linux守护进程编写规则1.创建子进程,父进程退出2.在子进程中创建新会话setsid函数就是用于创建一个新的会话,并担任该会话组的组长,调用setsid有下面3个作用。让进程摆脱原会话的控制让进程摆脱原进程组的控制让进程摆脱原控制终端的控制3.改变当前目录为根目录4.重设文件权限掩码umask(0)5.关闭文件描述符

2011-01-11 15:23:00 366

原创 英文

<br />trapezoid<br />梯形,不等边四边形<br /> 

2011-01-07 09:48:00 265

原创 归并排序

归并排序就是将两个或两个以上的有序数据序列合并成一个有序数据序列的过程。时间复杂度为O(nlog2n)。

2011-01-06 20:09:00 283

原创 选择排序

<br />选择排序的基本思想是:每步从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列的最后,直到全部排完为止。<br />直接选择排序的基本思想是,每一趟排序在n-i+1(i=1, 2, ... n-1)个记录中选取关键字最小的记录,并和第i个记录进行交换。<br /> <br />选择排序算法的时间复杂度为O(n2)。

2011-01-06 19:47:00 313

原创 ARM Linux线程相关API

线程创建:pthread_create线程退出:pthread_exit,这是线程的主动行为线程资源回收:由于一个进程中的多个线程是共享数据段的,因此通常在线程退出之后,退出线程

2011-01-06 15:33:00 835

原创 插入排序

<br />插入排序的基本思想是:每一趟将一个待排序的纪录按其关键字值的大小插入到已经排序的部分文件中的适当位置,直到全部插入完成。<br />目前插入排序有两种:直接插入排序和希尔排序。<br /> <br />直接插入排序<br />基本思想是依次将每个记录插入到一个有序的序列中去。<br />假设记录存放在r[1..n]之中,r[1..i-1]是已排好序的记录,r[i..n]是没排序的记录。<br />插入排序是将未排序的r[i..n]中的r[i]插入到r[1..i-1]中,使r[1..i]成为有序,

2011-01-05 21:20:00 344

原创 进程间通信API

<br />无名管道<br />它只能用于具有亲缘关系的进程之间的通信(也就是父子进程或者兄弟进程之间)<br />它是一个半双工的通信模式,具有固定的读端和写端<br />管道也可以看成是一种特殊的文件,对于它的读写也可以使用普通的read、write等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。<br /> <br />有名管道<br />它可以使互不相关的两个进程实现彼此通信<br />该管道可以通过路径名来指出,并且在文件系统中是可见的。在建立了管道之后,两个进程就可以

2011-01-04 23:14:00 887

原创 Linux进程线程

Linux中进程描述符内核把进程放在任务队列(task list)的双向循环链表中,其中链表的每一项都是类型为task_struct,成为进程描述符的结构,该结构定义在文件中。进程状态运行(TASK_RUNNING)可中断(TASK_INTERRUPTIBLE)不可中断(TASK_UNINTERRUPTIBLE)

2011-01-04 21:47:00 382

原创 LINUX 去除DOS文件行末的^M

<br />dos2unix 文件名

2011-01-04 15:50:00 397

原创 块设备驱动编写

<br />块设备驱动程序描述符<br />块设备通常指一些需要以块(如512字节)的方式写入的设备。<br /> <br />块设备驱动程序描述符是一个包含在<linux/blkdev.h>中的blk_dev_struct<br />struct blk_dev_struct { request_queue_t request_queue; /* 包含了初始化之后的I/O请求队列 */ queue_proc *queue; void *data;}; <br />所有块设

2011-01-03 21:44:00 622

原创 字符设备驱动编写

<br />1.流程说明<br />2.设备编号<br />(1)设备编号说明<br />对字符设备的访问是通过文件系统内设备名称进行的,哪些名称被称为特殊文件或设备文件,通常位于/dev目录下。<br /> <br />在Linux内核中,dev_t类型用于保存主设备号和次设备号。dev_t是一个32位数,其中的12位用于表示主设备号,而其余的20位用于表示次设备号。当然,对于编写驱动程序的人员并不需要关心这些位的分配。在2.6内核中,通过dev_t获得主设备号可以使用以下宏。<br />头文件:#inc

2011-01-03 20:41:00 410

原创 嵌入式Linux设备驱动开发(1)

<br />用户进程是通过设备文件来与实际的硬件打交道。每个设备文件都有其文件属性(c/b),如表示是字符设备还是块设备。另外每个文件都有两个设备号,第一个是主设备号,用于标识驱动程序;第二个是从设备号,用于标识使用同一设备驱动的不同的硬件设备。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备号一致,否则用户进程将无法访问到驱动程序。<br />最好,在用户进程调用驱动程序时系统进入核心态,这时不再是抢先式调度,也就是说,系统必须在完成当前驱动的子函数返回后才能进行其他的工作。<br /> <br

2011-01-03 19:18:00 407

原创 文件I/O操作

lseek函数返回值:成功:文件的当前位移-1:出错注意:通常文件的当前偏移应当是一个非负整数,但是,某些设备也可能允许负的偏移量。但对于普通文件,则其偏移量必须是非负值。因为偏移量可能为负值,所以在比较lseek的返回值时应当谨慎,不要测试它是否小于0,而要测试它是否为-1。

2011-01-03 12:26:00 360

原创 Linux系统调用

系统调用规定用户进程进入内核空间的具体位置。进行系统调用时,程序运行空间需要从用户空间进入内核空间,处理完后再返回到用户空间。虚拟文件系统(VFS)Linux的文件系统由两层结构构建。第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。VFS就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分。它位于用户程序和具体的文件系统之间。它对用户程序提供了标准的文件系统调用接口,对具体的文件系统,它通过一系列的对不同文件系统公用的函数指针来实际调用具体的文件系统函数,完成实际

2011-01-03 11:55:00 531

原创 哈希表

<br />哈希表的构造方法<br />1.直接定址法<br />2.数字分析法<br />3.折叠法<br />4.除留余数法<br /> <br />哈希表的处理冲突方法<br />1.开放定址法<br />2.再哈希法<br />3.链地址法<br />4.建立一个公共溢出区<br />公共溢出区是指另外设立存储空间来处理哈希冲突。假设哈希函数的值域为[0,m-1],则设向量HashTable[0, m-1]为基本表,另外设立存储空间向量OverTable[0, v]用以存储发生冲突的记录。<br /

2011-01-03 00:17:00 1149

原创 红黑树

<br />1.红黑树的定义<br />红黑树是指满足下列条件的二叉搜索树:<br />(1)每个节点要么是红色,要么是黑色<br />(2)所有的叶节点都是空节点,并且是黑色<br />(3)如果一个节点是红色,那么它的两个子节点都是黑色<br />(4)节点到其孙子节点的每条简单路径都包含相同数目的黑色节点<br />(5)根节点永远是黑色的<br /> <br />从根节点到叶节点的黑色节点数被称为树的黑色高度(black-height)。<br />从根节点到叶节点的路径长度不会超过任何其他路径的两

2011-01-01 15:19:00 497

原创 系统调用

<br />系统调用规定用户进入内核空间的具体位置。进行系统调用时,程序运行空间需要从用户空间进入内核空间,处理完后再返回到用户空间。<br /> <br />这些系统调用编程接口主要是通过C库(libc)实现的。<br /> <br /> 

2011-01-01 12:10:00 344

原创 Linux内核链表

<br /> 2.4内核中的链表结构核2.6并没有太大区别。二者不同之处在于2.6扩充了两种链表数据结构:链表的读拷贝更新(rcu)和HASH链表(hlist)。这两种扩展都基于最基本的list结构。<br /> <br />链表数据结构定义:<br />struct list_head { struct list_head *next, prev;};<br />这里的list_head没有数据域。在Linux内核链表中,不是在链表结构中包含数据,而是在数据结构中包含链表节点。<br /> 

2011-01-01 12:03:00 424

原创 循环链表

<br />循环链表和单链表的唯一差别在于单链表中,算法判断到达链表尾的条件是p->next是否为空,而在双链表中,则是判断P->next是否等于头指针。

2011-01-01 11:11:00 308

NiosII从入门到精通(_较好).pdf

NiosII从入门到精通(_较好).pdfNiosII从入门到精通(_较好).pdf

2010-06-29

window网络编程网络编程

window网络编程。window网络编程。window网络编程。window网络编程。window网络编程。

2010-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除