dlm.c
上传用户:minyiyu
上传日期:2018-12-24
资源大小:864k
文件大小:1k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. /* an elementary DLM support.*/
  2. /* CVS: $Id: dlm.c,v 1.1 2000/01/15 01:45:26 edwardc Exp $ */
  3. #ifndef BBS
  4.   #include <dlfcn.h>
  5.   #include <varargs.h>
  6.   #include <strings.h>
  7.   #include <stdlib.h>
  8.   #include <stdio.h>
  9. #else
  10.   #include "bbs.h"
  11. #endif
  12. char  dl_lib_c[] =
  13. "$Id: dlm.c,v 1.1 2000/01/15 01:45:26 edwardc Exp $";
  14. void   *
  15. DL_get(name, errno)
  16. char   *name;
  17. int    *errno;
  18. {
  19. char    buf[512], symbol[256];
  20. void *handle;
  21. int x = 0;
  22. if ( !strchr(name, ':') ) {
  23. *errno = -1;
  24. return NULL;
  25. }
  26. strcpy(buf, (char *)stringtoken(name, ':', &x));
  27. strcpy(symbol, (char *)stringtoken(name, ':', &x));
  28. if ( !dashf(buf) ) {
  29. *errno = -2;
  30. return NULL;
  31. }
  32. report(buf);
  33. report(symbol);
  34. handle = dlopen(buf, RTLD_LAZY);
  35. if ( !handle ) {
  36. *errno = -3;
  37. report(dlerror());
  38. return NULL;
  39. }
  40. return dlsym(handle, symbol);
  41. }