Linux下C程序调用.so(动态链)的一个例子
2009-05-07 15:15
387 查看
/**********************************************
* 使用Linux下C++的动态链接库.So文件
* void *pdlHandle;
* pdlHandle = dlopen("/home/fengsy/len/Len.So/len.so", RTLD_LAZY);
* pnswap=dlsym(pdlHandle, "swap");
*********************************************/
[fengsy@ctihost Len.So]$ cat call.c
#include <dlfcn.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
void *(*pnswap)(int *,int *);
main()
{
void *pdlHandle;
int a[1],b[1];
a[0]=1;
b[0]=2;
pdlHandle = dlopen("/home/fengsy/len/Len.So/len.so", RTLD_LAZY);
pnswap=dlsym(pdlHandle, "swap");
printf("a:%d b:%d/n",a[0],b[0]);
pnswap(a,b);
printf("a:%d b:%d/n",a[0],b[0]);
dlclose(pdlHandle);
}
-------------------------------------------------------------------------
[fengsy@ctihost Len.So]$ cat len.c
void swap(int *a,int *b)
{
printf("3333333/n");
int c;
c=*b;
*b=*a;
*a=c;
}
* 使用Linux下C++的动态链接库.So文件
* void *pdlHandle;
* pdlHandle = dlopen("/home/fengsy/len/Len.So/len.so", RTLD_LAZY);
* pnswap=dlsym(pdlHandle, "swap");
*********************************************/
[fengsy@ctihost Len.So]$ cat call.c
#include <dlfcn.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
void *(*pnswap)(int *,int *);
main()
{
void *pdlHandle;
int a[1],b[1];
a[0]=1;
b[0]=2;
pdlHandle = dlopen("/home/fengsy/len/Len.So/len.so", RTLD_LAZY);
pnswap=dlsym(pdlHandle, "swap");
printf("a:%d b:%d/n",a[0],b[0]);
pnswap(a,b);
printf("a:%d b:%d/n",a[0],b[0]);
dlclose(pdlHandle);
}
-------------------------------------------------------------------------
[fengsy@ctihost Len.So]$ cat len.c
void swap(int *a,int *b)
{
printf("3333333/n");
int c;
c=*b;
*b=*a;
*a=c;
}
相关文章推荐
- Linux下C程序调用.so(动态链)的一个例子
- C 程序调用 .so动态模块库例子
- linux 程序动态调用.so文件中的函数
- ABAP--一个极好的调用外部java程序的Search Help Exit的实例(RFC好例子)
- Linux平台使用JNI的例子 Java调用so
- Linux编程练习(二)—— Linux下.so动态库的建立和调用
- linux下动态链接问题(so文件的编写与调用)
- linux下动态链接问题(.so文件的编写与调用)
- Linux下C++动态加载so 调用方法
- linux-C直接调用SO动态库和生成SO动态库的函数
- linux 动态调用 .so 库文件中的函数
- 自己写了一个通过smarty与php相互结合的例子,动态生成静态程序,写的很烂
- Linux平台使用JNI的例子 Java调用so
- Linux下.so动态库的建立和调用
- 如何在liunx下编译一个调用到c语言开发的动态库(so文件)的fortran程序。
- Linux平台使用JNI的例子 Java调用so
- 在JAVA与JSP中要调用一个LINUX上的脚本程序,或WINDOWS上的脚本程序
- linux两个程序通过共享内存通信的一个简单例子
- 创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址
- Linux下的动态共享库(so)开发调用