易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux平台上动态链接库的创建与加载

        在读jvm代码时,学习了读取动态链接库的方法。下面就.so文件的创建和读取做一个简单的总结。
1.创建.so文件
add.h
 #ifndef ADD_H
#define ADD_H
int add(int arg1,int arg2);
#endif

add.c
#include "add.h"
int add(int arg1,int arg2)
{
return arg1 + arg2;
}
编译为.o文件:
gcc -fPIC -c add.c
生成库文件:
gcc -shared -Wl,-soname,libadd.so.1 -o libadd.so.1.0 add.o
cp libadd.so.1.0 libadd.so
这样就生成了libadd.so库文件。修改LD_LIBRARY_PATH,将libadd.so加入到路径中。
2.加载.so文件,调用函数。
dltest.c,参考man 3 dlopen 帮助文件中的例子。
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
int main(int argc, char **argv)
{
void *handle;
int (*add)(int,int);
char *error;
handle = dlopen ("libadd.so", RTLD_LAZY);
if (!handle) {
fprintf (stderr, "%s\n", dlerror());
exit(1);
}
dlerror(); /* Clear any existing error */
add = dlsym(handle, "add");
if ((error = dlerror()) != NULL) {
fprintf (stderr, "%s\n", error);
exit(1);
}
printf ("%d\n", add(3,5));
dlclose(handle);
return 0;
}
编译:
 gcc -rdynamic -o dltest dltest.c -ldl
执行dltest得到结果为8。


相关文档:

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux下 主DNS服务器与从DNS服务器

举例:
主DNS的named.conf文件:
options { 
directory "/var/named"; 
}; 
zone "." IN { 
type hint; 
file "named.ca"; 
}; 
zone "localhost" IN { 
type master; 
file "localhost.zone"; 
allow-update { none; }; 
}; 
zone ......

linux下的framebuffer的例子(转)

例子实现了直接写屏的功能,即把屏幕清空(变黑),程序的流程大致为:打开一个FrameBuffer设备;通过mmap调用把显卡的物理内存空间映射到用户空间;通过映射关系直接写内存。
头文件
////////////////////////////////////////
///////////// fbtools.h ////////////////
////////////////////////////////////////
# ......

linux 的启动过程

系统启动
1、系统加电
2、BIOS 自检 → 本地设备枚举和初始化
3、POST 代码从内存中清除,但运行时服务(runtime service)仍然留在内存。
4、BIOS 从 CMOS 的设置中找出第1/2/3 启动设备(可能有第4个),然后逐个尝试,并在第一个 "active“状态的硬盘上读入其 MBR
 
 
第一阶段引导加载程序
1、MBR ......

Linux c/c++ 开发工具集锦

我之前是一个C程序员,而且是个Windows的程序员,在windows下使用VC6.0/VS2005等microsoft的傻瓜式工具工作,
对于那个vc 6.0/vs2005的快捷操作,debug操作是那么的熟悉,可以说vc
6.0/vs2005是window下开发c/c++最好用的工具了,可以查看调用堆栈,内存变化情况,变量值,另外安装 visual assist
x后让VC看起来是那么 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号