|
这是我一段关于共享库的代码,没完成.
题目是:将创建,删除信号量函数制成共享库.编写一个程序调用共享库.看是否成功.
这是我的调用程序:
#include "stdio.h"
#include <sys/sem.h>
#include "dlfcn.h"
#define SOFILE "./my.so" /*指定动态链接库名称*/
main()
{
void *dp;
char *error;
int (*sem_creat) (key_t key);
void (*sem_del) (int semid);
key_t key;
int semid;
puts ("the example using shared lib");
//打开动态链接库
dp = dlopen (SOFILE,RTLD_LAZY);
if (dp==NULL)
{
fputs (dlerror(),stderr);
exit(1);
}
//取创建信号量函数
sem_creat = dlsym (dp,"sem_creat");
error = dlerror();
if (error)
{
fputs (error,stderr);
exit (1);
}
//取删除信号量函数
sem_del = dlsym (dp,"sem_del");
error = dlerror();
if (error)
{
fputs (error,stderr);
exit (1);
}
//调用共享函数
………………
//关闭共享库
dlclose (dp);
exit (0);
}
如何判断是否创建了信号量呢?调用共享函数这块应该怎么写??
高手帮我下 ̄ ̄ ̄急 |
|