自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 java jvm理解

jvm 其实就是java虚拟机,也就是java的运行代码是在jvm上跑的,java编译是生成字节码,由jvm翻译成机器语言,而c++是直接翻译成机器语言https://www.zhihu.com/question/35164211/answer/68265045

2017-09-04 23:05:28 280

原创 static_cast与reinterpret_cast

staitc_cast的用途:  1 用于jic

2014-09-04 11:39:04 505

转载 GDB调试

用GDB调试程序(一)GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:

2014-07-06 16:08:13 576

转载 MAPn v3.1 Stable 一键安装包正式版发布

LAMP一键安装的网址:http://sourceforge.jp/projects/sfnet_mapn/

2014-04-24 10:24:41 652

原创 四次握手 以及 TIME_WAIT

yi

2014-04-16 11:18:23 455

原创 内存分配方式

C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free   内存分配方式  内存分配方式有三种:  [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。  [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内

2014-04-15 21:19:53 476

转载 申请内存(getmemery)

#include #include #include using namespace std;char *GetMemory(char *&p, int num){p = (char *)malloc(sizeof(char)*num);//p = new char[num];return p;}int main(void){char *

2014-04-15 18:50:14 702

原创 深拷贝与浅拷贝

深拷贝 当给一个dui'xiang

2014-04-15 18:19:24 475

原创 Stl的erase

今天看Scott Meyers大师的stl的用法,看到了我前段时间犯的一个错误,发现我写的代码和他提到错误代码几乎一模一样,有关stl容器删除元素的问题,错误的代码如下:std::vector mFriendList;...std::vector::iterator iter = mFriendList.begin();for ( ; iter != mFriendList.end

2014-04-15 10:28:27 565

原创 ctag的使用

在VIM中用ctag使用很方便,自然会有两种安装放

2014-04-11 14:49:27 1072

原创 typedef 与define 的区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的。它在自己的作

2014-04-11 11:00:47 521

原创 PHP源码安装

configure 是一个shell脚本,它是检测环境

2014-04-10 21:01:36 546

转载 C++ STL

30分钟学会stlhttp://net.pku.edu.cn/~yhf/UsingSTL.htm

2013-06-27 00:16:20 437

转载 Linux 线程设置属性

线程属性标识符:pthread_attr_t 包含在 pthread.h 头文件中。[c] view plaincopy//线程属性结构如下:  typedef struct  {      int                   etachstate;      //线程的分离状态      int

2013-06-19 16:36:54 683

原创 Linux操作系统的硬链接与软链接

硬连接:hard link,软连接:symbolic link首先是名字上的区别,硬连接:hard link,软连接:symbolic link再分别叙述: 首先是hard link,大家都知道cp的用法,即cp oldfile newfile,这样一来就比较浪费空间,假设oldfile有600M,拷贝出来的newfile(也即 oldfile的副本)也同样要占距600M的空间,这对于

2013-06-19 09:48:12 747

转载 epoll使用详解(精髓)

在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __

2013-06-16 20:28:06 630

原创 linux 并发服务器

Linux系统网络服务器模型主要有两种:并发服务器和循环服务器。所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻指可以响应一个客户端的请求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特点。1、TCP循环服务器:首先TCP服务器接受一个客户端的连接请求,处理连接请求,在完成这个客户端的所有请求后断开连接,然后再接受下一个客户端的请求。

2013-03-17 15:37:44 717

原创 分频

电路中的分频有二种:1、分频是指将意单一频率信号的频率降低为原来的1/N,就叫N分频。实现分频的电路或装置称为“分频器”。这里的分频上针对单频信号而言的。如把33MHZ的信号2分频得到16.5MHZ的信号,3分频得到11MHZ的信号,10分频得到3.3MHZ的信号。这种分频一般指在数字电路。2、分频是对信号中不同频率成分的各种信号分开,分成几个频率段。实现分频的电路或装置称为“

2012-03-29 10:48:37 3382

原创 Linux中断笔记

函数参数说明:int irq :在这里很明显传递过来的是中断号void *dev_id :这个传递来的是设备的id号,可以根据这个设备id号得到相应设备的数据结构,进而的到相应设备的信息和相关数据。下面以提取网路数据为例来说明一下。struct net_device *dev=( struct net_device *)dev_id; (这里的dev_id的值是注册中断的时候宏传递过来的,

2012-01-30 12:55:43 670

转载 回调函数

先泛后精,先浅后深”的道理可是知易行难,所以常常会给技术上的小细节纠缠着,搞得晕晕乎,其中“回调函数”就是其中之一了,虽然回用,但是老是不明白其中的含义,众多的书本也说得隐晦不清。直到不久前看到一篇文章才总算比较清晰了解。概括起来,回调机制包括两部分:服务执行者和服务方式制定者。1. 服务执行者先制定服务规范;2.服务方式制定者然后按照规范制定服务方式;3.然后执行者按照这个方式提

2012-01-30 12:32:27 484

翻译 linux schedul源码分析

asmlinkage void schedule(void){ task_t *prev, *next; runqueue_t *rq; prio_array_t *array; struct list_head *queue; int idx; #判断是否调度发生在中断上下文,如果是就出错;在LINUX的中断中是不允许发生调度的  if (unlikely(i

2011-12-11 17:11:41 524

转载 request_irq中断模型

Kernel中断处理模型结构图如下:下面简单介绍一下:1. Linux定义了名字为irq_desc的中断例程描述符表:(include/linux/irq.h)    struct irqdesc irq_desc[NR_IRQS];NR_IRQS表示中断源的数目。2. irq_desc[]是一个指向irq_desc_t结构的数组, irq_desc_t结构是各个设备中

2011-11-27 16:53:24 1491 1

转载 s3c2440基于linux的按键和外部中断驱动实践及驱动机制分析含代码

今天实践了一个比较复杂的驱动,完成了按键出发外部中断EINT2,测试函数统计按键按下的次数打印出来,同时包含了防抖动功能。      编程主要思想是,按键产生外部中断2,中断服务函数里面启动定时器,定时器预设防抖动的检测时间,每个定时器中断产生,定时器服务函数检测外部中断,连续3次都检测有按键中断产生,确认,计数加一,否则认为是按键抖动,丢弃。测试函数读取驱动里面统计的按键中断数目,打印到终端

2011-11-27 16:36:31 1127 1

原创 BUG: scheduling while atomic: gnode/1005/0x00000100

BUG: scheduling while atomic: gnode/1005/0x00000100                             Modules linked in: nRF905

2011-11-24 23:36:29 1207

原创 实模式与保护模式

对于80X86处理器来说,从80386处理器开始,除了以前的实模式外,还增添了 保护模式和V86模式。实模式和V86模式都是为了和8086兼容而设置的。   实模式:       内存寻址方式为:段式寻址,即物理地址=段地址*16   +   段内偏移地址       可寻址任意地址,所有指令都相当于工作在特权级。       dos工作在实模式下 保护模式:

2011-11-09 12:21:12 375

转载 linux 线程

线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有

2011-11-08 20:49:35 381

原创 SOCKET 非阻塞方式

非阻塞   nonblock                                          #include #include #include #include #include #include #include #include #include #include #define MAXBUF 1

2011-11-06 16:19:56 629

转载 Linux Socket

1、网络中进程之间如何通信?本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:消息传递(管道、FIFO、消息队列)同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)共享内存(匿名的和具名的)远程过程调用(Solaris门和Sun RPC)但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标

2011-11-06 16:03:50 523

原创 研一

时间过得很快 我都来重庆三个月了。这边天气真是让人受不了,夏天很热。冬天没太阳。不是很适应这边的天气。    首先先谈谈技术吧 ,这学期涉及的技术比较广       1 Linux  C 编程      2 简单的MAC协议     3 简单的一些驱动     4 单片机的一些知识     5 Linux 内核的一些知识  我觉得在技术学习方面还是比较成功的 。首先总结

2011-11-06 15:13:40 802 1

原创 Linux socket recv & send

int send( SOCKET s, const char FAR *buf, int len, int flags );    不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。    该函数的第一个参数指定发送端套接字描述符;    第二个参数指明一个存放应

2011-11-05 22:59:46 493

空空如也

空空如也

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

TA关注的人

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