自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (5)
  • 收藏
  • 关注

原创 将博客搬至cnblogs

将博客搬至cnblogs

2014-08-05 10:57:13 713

原创 fork父子进程共享

fork之后,子进程会拷贝父进程的数据空间、堆和栈空间(实际上是采用写时复制技术),二者共享代码段。所以在子进程中修改全局变量(局部变量,分配在堆上的内存同样也是)后,父进程的相同的全局变量不会改变。

2014-07-07 23:40:16 6476

转载 Ubuntu 安装 Cscope 和 Ctags

一、安装Cscope 软件点击此处下载Cscope软件。tar -jxvf cscope-15.7a.tar.bz2cd cscope-15.7a./configuremakesudo make install安装过程出现的问题:1.出现`flex' is missing on your system:sudo apt-get ins

2013-06-15 15:31:05 1537

转载 VIM和GVIM 配置总结

1.前言关于如何VIM的配置,网上已经有很多相关教程,详细的教程只会是重复,本文仅介绍本人的配置心得和觉得需要注意的地方。详细可以教程可以参考http://blog.youkuaiyun.com/wooin2.VI、VIM与GVIM的区别VIM是VI的升级版,且完全兼容VI指令,GVIM跟VIM的区别是VIM要求全部键盘操作,而GVIM可以使用鼠标进行可视化操作。关于GVIM与VIM,

2013-06-07 23:34:40 927

原创 网络分析工具

1. http://wiki.wireshark.org/Tools2. http://nmap.org/nping/3. an open-source, cross-platform packet generator/analyzer - Ostinatohttp://ostinato.googlecode.com/4. http://www.colaso

2013-05-13 22:38:26 787

原创 vimr配置

" Source a global configuration file if availableif filereadable("/etc/vim/vimrc.local")  source /etc/vim/vimrc.localendifset nocompatible       "去掉vi一致性模式set   autoread         "文件被改动时自

2013-05-06 23:13:45 999

原创 vim 笔记一

注意:Linux、MAC下的全局目录是在/usr/vim/share/vim目录中,我们为每个用户或者为自己的用户单独配置一个,可以这样做:debian:~# cp /usr/share/vim/vimrc ~/.vimrcdebian:~# vim ~/.vimrc然后直接编辑这个文件就行了,在当前用户的根目录,名字叫.vimrcVim中有三类模式,正常模式(normal

2013-05-06 22:18:51 721

转载 把Vim改装成一个IDE编程环境(图文) -- 续1

By:吴垠Date:2007-12-27Email:lazy.fox.wu#gmail.comHomepage:http://blog.youkuaiyun.com/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对

2013-05-02 21:02:02 594

转载 把Vim改装成一个IDE编程环境(图文)

By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:http://blog.youkuaiyun.com/wooinCopyright:该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商业目的下对本文的任何行

2013-05-02 20:57:47 768

转载 linux下解压命令大全

.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————————.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和 .tgz解压:tar zxvf

2013-05-02 19:58:30 706

转载 linux驱动学习路线

Linux系统目前主要维护2.4和2.6两个内核版本,在http://www.kernel.org/ 网站上已经可以下载到最新的2.6内核linux-2.6.38.6,及最新的2.4内核linux-2.4.37.11。稳定版本号基本上是1~3月更新一次,如:2.6.35至2.6.36,升级版本号每1~2周更新一次,如:2.6.35.1至2.6.35.2。升级后的高版本内核并不完全兼容低版本内核,所

2013-03-17 16:08:49 3810

转载 linux 静态库的链接 undefined reference

在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'     关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.  链接时缺失了相关目标文件(.o)    测试代码如下:     然后

2013-01-06 22:47:54 661

原创 C语言:0, '0', '\0', NULL 区别

'0'代表字符0,对应ascii码为48;‘\0’字符串结束符,对应的ascii码为0,所以while(*a++ != '\0')与while(*a** != 0)等价;NULL定义为(void *) 0,它是一个指针,指向一个地址为0的值,用于指针比较。

2012-12-09 18:57:58 637

转载 scull工作过程

1. Linux启动时运行加载驱动模块的脚本。脚本首先做insmod。insmod时会调用驱动模块的init函数。在init 中,进行了一些与设备本身相关的初始化设置以后(比如scull需要分配内存空间),会调用cdev_init()和cdev_add()来进行字符设备的初始化,并把这个设备添加进系统。这个过程会创建/proc/modules、/proc/devices两个文件和/sy

2012-11-25 15:11:04 618

原创 linux驱动学习4:scull驱动

要点:学习ioctl()驱动编写,如何传入命令来控制硬件。1)ioctl知识用户空间的ioctl()调用如下:int  ioctl(int fd,  unsigned long  cmd, …);2)驱动中ioctl:Int  (*ioctl) (struct inode  *inode,  struct file  *filp,  unsigned int  cmd,  un

2012-11-25 15:06:35 1074

原创 linux驱动学习3:实现一简单完整驱动(包括open,read,write,ioctl)

目的:将内核内存的一块作为字符设备,用户可通过这些调用来读写这段内存。总结:1、设备号主设备号标识设备对应的驱动程序,次设备号由内核使用,用于确定设备文件所指的设备。通过次设备号获得一个指向内核设备的直接指针,也可将此设备号当作设备本地数组的索引。设备编号用dev_t表示(linux/types.h  32位,其中12位表示主设备号,20位表示次设备号)。由dev_t获得主

2012-11-25 15:05:33 22065 1

原创 linux驱动学习2:运行hello模块

1)       在/home/yj/kernel中建立2个文件:hello.c  makefileHello.c#include #include   MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void){        printk(KERN_ALERT "Hello, Yangj

2012-11-25 15:02:08 1109

转载 linux驱动—ioctl

Ioctl设备控制大部分驱动除了需要具备读写设备的能力外,还需要具备对硬件控制的能力。例如,要求设备报告错误信息,改变波特率,这些操作常常通过ioctl方法来完成用户使用方法在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd, unsigned long cmd, ...)原型中的点表示这是一个可选的参数,存在与否依赖于控制命令(第2个

2012-11-24 09:55:29 4923

转载 linux驱动简单实例

基础知识:       不同于windows驱动程序,Linux设备驱动程序在与硬件设备之间建立了标准的抽象接口。通过这个接口,用户可以像处理普通文件一样,通过open,close,read,write等系统调用对设备进行操作,如此一来也大大简化了linux驱动程序的开发,后面会看到,通过file_operations这个结构体(实际上是一个函数指针的集合),把驱动的操作和设备号联系起来,程序

2012-11-23 16:03:44 2367

转载 Wireshark基本介绍和学习TCP三次握手

转自http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html阅读目录wireshark介绍wireshark不能做的wireshark VS Fiddler同类的其他工具什么人会用到wiresharkwireshark 开始抓包wireshark 窗口介绍wireshark 显示过

2012-11-23 15:10:51 6183

转载 HTTP协议详解

转http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容

2012-11-23 14:53:23 989

原创 驱动开发学习路径

1、编写hello模块,学会基本的流程,能看到输出;2、写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现,在ioctl里完成从用户空间向内核空间传递结构体的实现。3、 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。4、简单学习下内存管理, 这个是最难的,明白各种memory alloc的函数实现细节。这

2012-11-20 15:04:28 788

原创 Need to write down something

I have been finding a  job for around one month, with several offers in hand. It is really hard to decide which job I should take. I have to take a lot of elements to account, like salary, working pla

2012-10-25 22:50:33 616

原创 找出图中的所有连通子图(创建图的邻接表,深度优先遍历查找子图)

/* 利用深度优先遍历,找出图中的所有连通图(子图) * 图用邻接表表示 *graph[], 利用边的信息来创建adjacency lists */#include#include#define MAXVERTICES 20#define MAXEDGES 20typedef enum { FALSE, TRUE, TRISTATE} bool;typede

2012-08-08 14:44:06 8821

原创 图深度优先遍历(递归和栈实现)

/* depth-first traversal * two methods: recursive and non-recursive * Graph is stored in an adjacency matrix */#include#include#define MAX 10int sp = 0;//stack pointerint stack[MAX];/***

2012-08-07 11:09:49 10807 2

原创 内存分配算法-(首次分配法和最佳分配法)

/* implement a memory allocation scheme by using algorithms first-fit, next-fit, and best-fit * freelist为空闲区链表的头,它的下一个节点才指向空闲缓冲区 * freelist是按首地址来排序的,而不是按size来排序。按首地址排序便于相邻空闲内存合并;按size大小来排序,便于分配内存 *

2012-08-06 20:49:55 7057

原创 统计输入中所有单词出现的次数(使用二叉查找树实现:递归和非递归)

/*@function:统计输入中的所有单词出现的次数 * @method: 使用二叉查找树。对输入的单词建立一颗二叉查找树,新输入的单词若存在于树中,则增加该节点的计数值;否则,新增一个节点 */#include#include#include#include#define MAXWORD 100typedef struct tnode{ char word[MAXW

2012-08-05 16:22:38 1393

原创 统计输入中关键词出现的次数(二分查找实现)

/* 统计输入的c语言中关键词出现的次数 * @method: 使用二分查找实现,keytab[]关键词必须是按首字母排好序的关键词表 */#include#include#include#includestruct key{ char *word; int count;} keytab[] = { "char", 0, "int", 0, "vo

2012-08-05 14:51:40 1143

原创 堆排序

#include#includevoid swap(int *x, int *y){ int temp; temp = *x; *x = *y; *y = temp;}/* ajust position of i-th node *//* 不断的将i与其子节点比较,将i放入正确的位置 */void adjust(int list[], int i, int n){ i

2012-08-04 21:40:08 424

原创 summary

Time flies, and a week has past. Kyle gave me the advice that i needed to do more coding.  So i made up my mind to write more code, and reviewed some algorithms and knowledge about data structure.

2012-08-03 21:00:00 356

原创 二叉查找树

/* binary search tree * 1. Any node in the left subtree is less than the root; * 2. Any node in the right subtree is greater than the root; * 3. if we traverse a binary search tree in inorder, we

2012-08-03 20:48:54 405

原创 binary tree(basic operation)

/** @author: yj * time: 2012/4 * usage: basic function for binary tree */ #include "tree.h"#include #include /** create binary tree parameters: none return: head

2012-08-03 11:09:02 463

原创 优先队列(链表实现)

插入时需要按照优先级从高到低排序,一般操作系统的任务队列调度会用到/* 优先队列(链表实现) * front 为队头指针(链表头节点) * rear 为队尾指针 */#include#includetypedef struct list_t{ int _element; int _priority; struct list_t *_next;}list_t;/*

2012-08-03 10:44:25 1761

原创 队列(链表实现)

/* 链表队列 * front 为队头指针(链表头节点) * rear 为队尾指针 */#include#includetypedef struct list_t{ int _element; struct list_t *_next;}list_t;/* 要改变一个变量的值,需要传入变量的地址作参数; * 要改变一个指针的值,需要传入该指针的地址作参数(即指针的指针);

2012-08-03 09:45:11 374

转载 从问题看本质:socket到底是什么?

一、问题的引入——socket的引入是为了解决不同计算机间进程间通信的问题1.socket与进程的关系1).socket与进程间的关系:socket 用来让一个进程和其他的进程互通信息(IPC),而Socket接口是TCP/IP网络的API接口函数。2).进程间通信(本机内)进程间通信(不同计算机,要联网)2、socket与文件的关系——如何理解so

2012-08-02 22:09:57 664

转载 void及void指针含义的深刻解析

void的含义    void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范    ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:    int *pint;    void *pvoid;    pvoid = pint;   /* 不过不能 pint = pvoid; */

2012-08-02 22:09:07 448

转载 va_list、va_start、va_arg、va_end的原理与使用 (转)

概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n)   ((sizeof(

2012-08-02 22:07:09 394

转载 内存对齐 _INTSIZEOF(n)

问:#define _INTSIZEOF(n)  ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )说能够在某些系统中内存对齐.(估计是得到一个2 或者4的整数倍)这个好象就是(x+3)&~3这样就能满足对齐了吗?请从数学上给说说.谢谢答(作者:win_hate):对于两个正整数 x, n 总存在整数 q, r 使得

2012-08-02 22:06:12 920

转载 linux常用的基本命令

一些常用的基本命令: uname -a 查看内核版本 ls -al 显示所有文件的属性 pwd 显示当前路径 cd - 返回上一次目录 cd ~ 返回主目录 date s 设置时间、日期 cal 显示日历 cal 2006 bc 计算器具 man & info 帮助手册 locale 显示当前字体 locale -a 所有可用字体 /etc/sysconfig/

2012-08-02 22:04:30 567

原创 ubuntu10.10 搭建arm开发环境——minicom设置

1. 在终端中输入sudo minicom -s以启动minicom配置:………………………………[configuration]………………………………………………………… Filename and paths ……………………………………………… File transfer and protocols ……………………………………………… Serial port setup ……

2012-08-02 22:03:12 616

基于Micro2440+开发板的无线视频传输

基于Micro2440+开发板的无线视频传输

2012-08-02

CC2430节点移植TinyOS

CC2430节点移植TinyOS,加州伯克利大学tinyos移植到cc2430上

2012-08-02

RS232串口通信详解

RS232串口通信详解 很详细的资料,欢迎下载

2012-08-02

现代通信系统-matlab仿真

国外大牛编写的 现代通信系统-matlab仿真

2011-03-19

无线传感器网络所有定位算法matlab仿真代码

很全的无线传感器网络定位算法仿真代码 并且包含各个算法的论文

2011-03-19

空空如也

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

TA关注的人

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