Advertisement
Guest User

Untitled

a guest
May 4th, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. /* Vardas Pavarde Grupe VarPav */
  2. /* Failas: loginas_ld3.c */
  3.  
  4.  
  5. #include <stdio.h>
  6.  
  7. #include <stdlib.h>
  8.  
  9. #include <dlfcn.h>
  10.  
  11.  
  12.  
  13. int (*fptr)(const char *s);
  14.  
  15.  
  16. double *pd;
  17.  
  18.  
  19.  
  20. int main ( int argc, char *argv[] )
  21. {
  22.  
  23. if ( argc != 2 )
  24.  
  25. {
  26.  
  27. printf( "Naudojimas: %s kelias/iki/failo\n", argv[0] );
  28.  
  29. exit(1);
  30.  
  31. }
  32.  
  33. else
  34. {
  35.  
  36. printf( "(C) 2013 Vardas Pavarde, %s\n", __FILE__ );
  37.  
  38.  
  39. void *dl = dlopen( argv[1], RTLD_LAZY | RTLD_LOCAL );
  40.  
  41.  
  42. if( dl == NULL )
  43.  
  44. {
  45.  
  46. puts( dlerror() );
  47.  
  48. exit(1);
  49.  
  50. }
  51.  
  52. else
  53.  
  54. {
  55.  
  56. pd = dlsym( dl, "ld3tst" );
  57.  
  58.  
  59. if( pd == NULL )
  60. {
  61.  
  62. puts( dlerror() );
  63.  
  64. exit(1);
  65.  
  66. }
  67.  
  68. else
  69. {
  70.  
  71. *(void**)(&fptr) = dlsym( dl, "ld3tst" );
  72.  
  73.  
  74. if( fptr == NULL )
  75. {
  76.  
  77. puts( dlerror() );
  78.  
  79. exit(1);
  80.  
  81. }
  82.  
  83. else
  84. {
  85.  
  86. int val = (*fptr)("");
  87.  
  88. printf("%i\n", val);
  89.  
  90. }
  91.  
  92. }
  93.  
  94. }
  95.  
  96.  
  97. dlclose( dl );
  98.  
  99. }
  100.  
  101.  
  102. return 0;
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement