eqxu的专栏

天使联盟

设计模式1 设计原则

1、设计模式是对特定问题经过无数次经验总结后提出的能够解决它的优雅的方案。2、重构就是在不改变软件系统代码的外部行为的前提下,改善它的内部结构。3、结构化的方法是以具体的功能为核心来组织程序的结构,它的封装度仅为1级,即仅有对于特定的功能的封装(函数)。这使得结构化的方法很难适应需求的变化,面向对...

2007-07-26 16:10:00

阅读数:575

评论数:0

java 线程遇到的问题及解决方法 JNI调用

调试thread的问题可以通过optimizeit软件来监视其性能 1、Thread processThread = new Thread(         new ICMPPongRunnable(pingHandle));       processThread.start();这样使用线程会...

2007-07-25 16:39:00

阅读数:766

评论数:0

module编程 Device or resource busy

moduletest.o: init_module: Device or resource busyHint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ param...

2007-07-25 11:40:00

阅读数:1274

评论数:0

函数 ioremap 物理地址到内核映射空间的映射函数

 源代码:/* * Remap an arbitrary physical address space into the kernel virtual * address space. Needed when the kernel wants to access high addresses * ...

2007-07-24 17:25:00

阅读数:3364

评论数:1

linux 内存映射2 内核/用户进程间通信

1、register_chrdev() 函数注册字符设备:  if (register_chrdev(MAJOR_NUM, " gobalvar ", &gobalvar_fops)) {  //…注册失败 } else {...

2007-07-24 13:41:00

阅读数:1264

评论数:0

linux 共享内存映射原理1 vmalloc kmalloc getfreepage

Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间内核空间中,从3G到vmalloc_start...

2007-07-24 11:06:00

阅读数:3657

评论数:0

声明类的析构函数是virtual 目的

 #include       struct   A   {     ~A(){std::cout     };         struct   B:   public   A{     ~B(){std::cout     };             int   main()     { ...

2007-07-23 15:46:00

阅读数:522

评论数:0

linux 内核进程与用户进程的通信 方法一 使用sockopt与内核交换数据

     Linux 内核提供 copy_from_user()/copy_to_user() 函数来实现内核态与用户态数据的拷贝,但这两个函数会引发阻塞,所以不能用在硬、软中断中。一般将这两个特殊拷贝函数用在类似于系统调用一类的函数中     在下面的代码中,内核模块注册了一组设置套接字选项的函...

2007-07-23 15:32:00

阅读数:1112

评论数:0

eclipse3.3 CDT4.0 make Error 57的解决方法

eclipse3.3 CDT4.0 make Error 57的解决方法:本人的环境配置eclipse3.3 for C/C++ (eclipse3.3 classic 对CDT可能不兼容)CDT master 4.0.0cygwin开始配置好以后,编写helloworld测试,发现会出现make...

2007-07-23 15:23:00

阅读数:1325

评论数:0

一次构建java、C、C++、UML的环境

 首先要下载myeclipse6.0 (eclipse3.3) http://lib.verycd.com/2007/07/14/0000156564.html 其次下载cygwin 先下载setup.exe,选择下载,然后到 ftp://bo.mirror.garr.it  /pub/1/sou...

2007-07-17 14:37:00

阅读数:1174

评论数:0

通过指针引用虚函数

对于一个带有虚函数的类中,他的对象的内存结构可以参考我以前发表的相关文章下面这个例子从多个角度来找到虚函数的指针,并对其进行调用方法一:定义一个对象找到对象中存放的虚函数所在表的头指针,并将其第一个指针作为我们调用的函数指针方法二:直接通过二级指针找到函数指针 #include#include  ...

2007-07-12 13:09:00

阅读数:969

评论数:0

宏定义 #号 ##号

/*When a macro parameter is used with a leading ‘#’, the preprocessor replacesit with the literal text of the actual argument, converted to a string ...

2007-07-12 10:43:00

阅读数:996

评论数:0

信号量操作的包装

//设置与初始化:#define SEM_LOCK_NUM 2//这个宏用来把初始化划分两类,可以不用#ifdef _SEM_SEMUN_UNDEFINED        //初始化时用到的联合   union semun   {         int val;         struct s...

2007-07-10 16:18:00

阅读数:752

评论数:0

共享内存 shm*库 使用流程

#include #include #include #include #define SHM_KEY 1001typedef struct{ int len; char UserData[20];} UserDefineStruct;main(int argc, char** argv){ in...

2007-07-10 14:51:00

阅读数:952

评论数:0

堆栈函数返回地址的修改 堆栈溢出

这里的代码只是将返回地址改为跳过对x的赋值,如果想进一步的修改,可以将你想要跳转的函数的地址赋给这个堆栈单元//下面是版本信息。//C:/>gcc -v//Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs//Configur...

2007-07-10 13:57:00

阅读数:1608

评论数:0

linux进程启动时段寄存器的初始化 及意义

#define start_thread(regs,new_rip,new_rsp) do { / asm volatile("movl %0,%%fs" :: "r" (0)); / asm volatile("movl %0,%%es; mov...

2007-07-06 14:20:00

阅读数:924

评论数:0

linux 宏定义 do while

 do while结构是先执行do然后判断条件,这里是while(0)代表只执行一次。这在linux中非常常见。#define DUMP_WRITE(addr, nr, foffset) / do { if (!dump_write(file, (addr), (nr))) return 0; *...

2007-07-06 09:27:00

阅读数:794

评论数:0

linux 内核 文件到磁盘影射

从linux 0.11种可以清晰地看出文件操作的底层处理流程:1、   文件打开操作的系统调用:struct file{ unsigned short f_mode;     // 文件操作模式(RW 位) unsigned short f_flags;       // 文件打开和控制的标志。 ...

2007-07-05 11:35:00

阅读数:1386

评论数:0

C 隐式类型转换 规则

1、 左边的可以隐式的转换成右边的 sbyte short、int、long、float、double、decimal ...

2007-07-04 09:57:00

阅读数:1099

评论数:1

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