Hola

En el manual  " man dlsym " indica como se debe de tratar el problema de
las referencias externas para usar el cargador de enlace dinamico.

Saludos
http://linuxprogramacion.blogspot.com

El día 06/08/10, Alejandro Vargas <[email protected]> escribió:
>
> He estado investigando sobre los shared objects.
>
> La función dlsym permite cargar dinámicamente funciones de un shared
> object. El ejemplo que viene en el man es así:
>
>                #include <dlfcn.h>
>
>                int main(int argc, char **argv) {
>                    void *manejador = dlopen ("/lib/libm.so", RTLD_LAZY);
>                    double (*cosine)(double) = dlsym(manejador, "cos");
>                    printf ("%f\n", (*cosine)(2.0));
>                    dlclose(manejador);
>                }
>
>
> Bien, lo que yo quisiera ver es cómo cargar no una función sino una
> sección de datos contenida en un .so. Con  objdump -t puedo listar e
> incluso ver la ubicación y longitud de un bloque de datos. Me gustaría
> hacer eso con un programa mio pero al parecer el dlsym no me carga
> eso. Será que el dlsym sólo carga cosas que estén en el .text? El dato
> que yo busco está en .rodata. y cuando intento cargarlo con dlsym me
> da un error de "undefined symbol: xxxx"
>
> Hay alguna función diferente para esto?
>

Responder a