自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

eqxu的专栏

天使联盟

  • 博客(19)
  • 收藏
  • 关注

原创 C++编写的SO 并被调用过程

makefile:all: g++ map.cpp -o map.so -shared g++ main.cpp -o main -ldlclean: rm -rf main rm -rf map.so  map.cpp#include #include #include using namespace std;extern "C"{ void map(std::str

2007-08-31 10:41:00 1131

原创 自定义so的引用

1、在编译的时候用到了自定义的mapreduce库g++ -o prog -L. -lmapreduce main.cpp 2、ldd prog 可以查看出系统能不能找到你的mapreduce库3、如果查不到,有三种方法来解决这个问题    把库文件放到/usr/lib中    使用dlopen函数组    修改定义库文件所在目录的环境变量

2007-08-30 14:20:00 652

原创 so的Makefile.am的编写 Makefile的生成

Makefile.amAUTOMAKE_OPTIONS = foreignINCLUDES = -I.sbin_PROGRAMS = libmapreduce.so libmapreduce_so_SOURCES   =  map.cpp  libmapreduce.so: map.o  g++ -o libmapreduce.so -shared map.o map.o :map.cpp 

2007-08-30 14:16:00 3232 1

原创 查看程序运行失败后core文件给出的信息

1、如果没有core文件生成可以如下配置:  ulimit -c 结果可能是0;用ulimit   -c   unlimited命令开启2、 查看core文件给出的信息   #include int main() { char *p = NULL;         char *q = "123";         memcpy(p,q,4);     

2007-08-29 14:38:00 1460

原创 _init _fini 函数的使用方法

可以通过"objdump -S 程序名" 命令来查看ELF中的汇编代码,可以找到这两个函数_init _fini 函数是给编译器使用的,可以通过下面两个方法进行使用 newtest.c#include __attribute ((constructor)) void GNUC_init(void){    printf("%s/n", __func__);}__attrib

2007-08-29 14:32:00 4384

原创 数据提取 “1,123,123,52” 这种信息存储方式的分离

#include #define MAXITEMS 10int main(){    char ca[] = "1,23,";        int ia[MAXITEMS] = {0};        char *pc = ca;        int i=0;        while(strstr(pc,","))    {        ia[i] = atoi(pc);     

2007-08-22 16:41:00 689

原创 data[0] 的妙用

int data[0];printf("sizeof data[0] is %d/n",sizeof(data)); 结果:sizeof data[0] is 0通过上面的例子可以得出一个结论   这么定义一个数组其意义就是定义一个别名 在linux的经典应用:skb 中的data举例://下面的结构体定义了两种TLV#pragma pack(1)struct STUT

2007-08-22 16:36:00 5599

原创 dll / class 运行时装载

DLL装载步骤:(缺页中断时才真正的加载入内存空间)1、调入dll文件分配内存2、确定程序入口点(分配入口指针)对加密的.class文件:1、用类库加载器ClassLoader,把类文件当做数据流读入到一个byte[]中2、对这个 byte[]进行解密处理后(没加密当然就不用做这步了)3、再通过 byte[] 生成一个类4、分配内存5、确定程序入口点

2007-08-21 15:28:00 740

原创 linux GCC命令输出的重定向

#gcc -o test test.c &>filename"&"在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename中了。gcc -o test test.c > result 2>&1重新定义标准输入,输出,和错误的文件标识符重新定义文件标识符可以用i>&j命令,表示把文件标识符i重新定向到j,你可以把"&"理解为"取地址" 

2007-08-20 17:53:00 3571

原创 C++ Singleton模版

 #ifndef CTEMPLETESINGLETON_H_#define CTEMPLETESINGLETON_H_templateclass CTempleteSingleton{public:    static T* Instance()    {        if(!pInstance_)            pInstance_=new T;        return pInst

2007-08-20 16:28:00 766

原创 在main函数前后执行代码的方法

#include#includeusing namespace std;struct Init_Exit{ Init_Exit(){printf("Hi/n");} ~Init_Exit(){printf("Bye/n");}};struct Init_Exit a;int main(){ cout return 0;} 这样就可以执行你需要执行的代码

2007-08-20 10:30:00 888

原创 GCC lib分类及优缺点

 静态函数库(static libraries) 静态函数库是在程序执行前就加入到目标程序中去了 静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用".a"作为文件的后缀。 可以用ar这个程序来产生静态函数库文件。Ar 是archiver的缩写。 静态库函数允许程序员把程序link起来而不用重新编译代码,节省了重新编译代码的时间 静态函数库对开发者来说还是很有用的,例如你想把自己提

2007-08-16 22:08:00 4052

原创 eclipse CDT 怎样使用另外一台机器上的cygwin

 问题产生的原因:由于cygwin的安装太慢,cygwin太大,所以不想在新的机器上安装,想使用现有的我将cygwin影射到另外一台机器上作为一个驱动器使用,在path中加入了Z:/bin;但是在编译helloworld时出现:**** Build of configuration Debug for project Hello ******** Internal Builde

2007-08-15 19:20:00 820

原创 js DOM 内存泄露 要点

     1、可以通过Drip-0.5来测 JSVM2的泄漏         http://www.script8.com/download/drip.rar2、看代码中是不是存在      循环引用(Circular References) — IE浏览器的COM组件产生的对象实例和网页脚本引擎产生的对象实例相互引用,就会造成内存泄漏。这也是Web页面中我们遇到的最常见和主要的泄

2007-08-15 14:20:00 1363

原创 面试题 自解

 1、输入一个n ,然后在屏幕上打印出NxN 的矩阵!  例如,输入一个3,则  1 2 3  8 9 4  7 6 5  输入一个4,则  1    2  3  4  12 13 14 5  11 16 15 6  10  9  8  7  #include //下面是初始化数组的当前层的四条边的数字void initOutLayer(int n,int *p,int numBegi

2007-08-07 15:09:00 644

原创 linux精确到微妙的计时简单实现

Linux 内核具有一个名为 jiffies 的全局变量,它代表从机器启动时算起的时间滴答数。这个变量最初被初始化为 0,每次时钟中断时都会加 1。您可以使用 get_jiffies_64 函数来读取 jiffies 的值,然后使用 jiffies_to_msecs 将其换算成毫秒或使用 jiffies_to_usecs 将其换算成微秒。jiffies 的全局定义和相关函数是在 ./linux/i

2007-08-06 14:20:00 2535

原创 linux开机流程 自定义模块的加载

1、开机执行流程 加载 BIOS 的硬件信息; 读取 MBR 的 Kernel Loader (亦即是 lilo, grub, spfdisk 等等)开机信息; 加载 Kernel 的操作系统核心信息; Kernel 执行 init 程序并取得 run-level 信息(这里就是加载点,在/etc/rc.d/下添加脚本) init

2007-08-03 10:37:00 1108

原创 automake步骤

目的: Makefile.am --->Makefile步骤:autoscan&&aclocal&&autoconf&&automake --add-missing &&./configure注释:这里可以使用选项--adding-missing让automake自动添加一些必要的脚本文件。1、由你的源文件通过autoscan命令生成configure.scan文件,然后修改confi

2007-08-01 13:32:00 1256

原创 linux 环境变量的设定

1、 echo $CVSROOT  用来显示CVSROOT的内容2、  export CVSROOT=:pserver:[email protected]:/home/cvsroot 用来设定CVSROOT,但是下次重起还要设定3、 pico -w /etc/profile  pico是一个文本编辑器,而-w选项关闭了长行回绕功能。export CVSROOT=:pserver:x

2007-08-01 12:39:00 1215

空空如也

空空如也

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

TA关注的人

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