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。
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
1. 进入到vim的安装目录,一般为 /usr/share/vim/vim70/
, 或类似 /usr/share/vim/vim??
/;
2. 如果有 .vimrc.vim
文件,查找到该文件中的如下内容:
if has("vms")
set
nobackup " do not keep a backup file, use versions instead
else
set
backup " keep a backup f ......
1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲
2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲
3. /proc/sys/net/ipv4/tcp_timestamps — 时间戳在(请参考RFC 1323)TCP的包头增加12个字节
4. /proc/sys/net/ipv4/tcp_sack — 有选择的应答
5. /proc/sys/net/ipv4/tcp_windo ......
【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】全面解析Linux内核的同步与互斥机制--同步篇 收藏
Powered by CSDN Blog
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sailor_8318/archive/2008/06/30/2599357.aspx ......