LINUX.ORG.RU

Указатель на структуру в объектном файле


0

0
Есть некоторая библиотека, скажем, libmyfunc.so. В этой библиотеке есть глобальная структура с указателями на функции внутри библиотеки. Подскажите, как можно обратиться к этой структуре (получить указатель на структуру) из исполняемой программы?
anonymous
Ответ на: комментарий от Reset
еще можно объявить структуру extern'ом в каком-либо h'нике, скомпилировать слинковать с libmylib.so
Reset ★★★★★
()
Ответ на: комментарий от Reset
В принципе, я склонялся именно к такому решению, сделать функцию в библиотеке, которая возвращала бы указатель на структуру. Но стало интересно, а как же ядро подгружает свои модули, ведь в модулях ядра тоже есть структура Fops, и ядро как-то обращается к этой структуре. Вот и подумал, что есть возможность реализовать подобный подход в прикладной программе.
anonymous
()
Ответ на: комментарий от anonymous
ну во-первых в ядре большинство структур регистрируются самими модулями, во вторых тебе никто не мешает сделать extern struct foo *ptr, где ptr - название символа указателя на структуру.
anonymous
()
libmyfunc.h:
typedef struct {
...
} struct_t;

libmyfunc.c:
#include "libmyfunc.h"
struct_t struct_name = {
...
};

program.c:
#include "libmyfunc.h"
struct_t *sptr = dlsym(handle, "struct_name");
spy_
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.