Back to index

cell-binutils  2.17cvs20070401
dl6amain.c
Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include <dlfcn.h>
00003 
00004 int bar = -20;
00005 
00006 int 
00007 main (void)
00008 {
00009   int ret = 0;
00010   void *handle;
00011   void (*fcn) (void);
00012 
00013   handle = dlopen("./tmpdir/libdl6a.so", RTLD_GLOBAL|RTLD_LAZY);
00014   if (!handle)
00015     {
00016       printf("dlopen ./tmpdir/libdl6a.so: %s\n", dlerror ());
00017       return 1;
00018     }
00019 
00020   fcn = (void (*)(void)) dlsym(handle, "foo");
00021   if (!fcn)
00022     {
00023       printf("dlsym foo: %s\n", dlerror ());
00024       ret += 1;
00025     }
00026   else
00027     {
00028       (*fcn) ();
00029     }
00030 
00031   dlclose (handle);
00032   return ret;
00033 }