The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как выполнить код при запуске библиотеки?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как выполнить код при запуске библиотеки?"  
Сообщение от Hordi email on 10-Апр-06, 16:40 
Хотелось бы сделать так, как сделано в libc.so, т.е. при запуске файла вывести версию или что-либо еще. Ткните где искать.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как выполнить код при запуске библиотеки?"  
Сообщение от michelnok (??) on 10-Апр-06, 17:35 
__attribute__((constructor))?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Как выполнить код при запуске библиотеки?"  
Сообщение от horsh (ok) on 10-Апр-06, 18:28 
>Хотелось бы сделать так, как сделано в libc.so, т.е. при запуске файла
>вывести версию или что-либо еще. Ткните где искать.

#pragma init
дока тут: http://docs.sun.com/app/docs/doc/805-4955/6j4mg806k?a=view

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Как выполнить код при запуске библиотеки?"  
Сообщение от Hordi email on 11-Апр-06, 17:02 
Я, похоже, непонятно объяснил, что мне нужно... Нужна stub-заглушка, которая при тупом запуске на выполнение (не загрузка программой) выдавала внутри зашитую врсию библиотеки.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Как выполнить код при запуске библиотеки?"  
Сообщение от michelnok (ok) on 11-Апр-06, 21:16 
>Я, похоже, непонятно объяснил, что мне нужно... Нужна stub-заглушка, которая при тупом
>запуске на выполнение (не загрузка программой) выдавала внутри зашитую врсию библиотеки.

"Доктор, почему меня все игнорируют?" :)

void __attribute__((constructor)) my_stub(void)
{
printf("My version is %d.%d\n",version_major,version_minor);
}

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Как выполнить код при запуске библиотеки?"  
Сообщение от Hordi email on 11-Апр-06, 22:16 
>"Доктор, почему меня все игнорируют?" :)
Так не работает... Компилирует нормально, в конечный файл включает, но результат нулевой. Или специально куда совать нужно? Подробнее плз.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Как выполнить код при запуске библиотеки?"  
Сообщение от michelnok (ok) on 11-Апр-06, 22:35 
>Так не работает... Компилирует нормально, в конечный файл включает,
>но результат нулевой. Или специально куда совать нужно? Подробнее плз.

Честно? Я не пробовал :)
Но должно работать. Возможно я ошибся с указанием места, где надо писать __attribute__, но это вроде как штатный для GCC способ. Погугли насчет примеров.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Как выполнить код при запуске библиотеки?"  
Сообщение от Hordi email on 12-Апр-06, 10:06 
Посмотрел __attribute__(constructor,destructor),- не то. Это должно сработать если делать dlopen-dlclose.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Как выполнить код при запуске библиотеки?"  
Сообщение от SIO on 11-Апр-06, 15:46 
Если не ошибаюсь, то это делается путем указания линкеру при линковке библиотеки точки входа (опция -е).
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру