Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

.so в Linux: общие глобальные переменные для процессов.

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Алексей Инкин



Зарегистрирован: 19.09.2004
Сообщения: 32
Откуда: Россия, Нижний Новгород

СообщениеДобавлено: Пт Мар 18 2005 06:32    Заголовок сообщения: .so в Linux: общие глобальные переменные для процессов. Ответить с цитатой

Я хочу сделать динамическую библиотеку на C++ под Linux (.so). Я вычитал, что код библиотеки загружается в память только один раз, и после этого все процессы используют его. Может, это и так, проверить не удалось. Мне нужно, чтобы все подключающиеся процессы использовали одни и те же данные, к которым имели бы доступ через функции библиотеки. Но у меня получается (и это проверяется несложным тестом), что значения глобальных переменных, объявленных в библиотеке, свои для каждого процесса. Как можно сделать их общими?
Мне приходит в голову только такой (самый идиотский из возможных) способ: сделать в коде (раз уж он разделяется всеми процессами) ассемблерную вставку типа такой:

jmp end_of_my_var
nop
nop
nop
nop
end_of_my_var:

или что-то подобное, синтаксис точно не помню. Потом эти четыре байта можно использовать для хранения указателя на структуру с данными. Но повторюсь, это будет самым глупым решением, если вообще сработет. Smile
В общем, как можно добиться разделения данных человеческими способами?
_________________
puts("hit");
printf("uck");
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ersh



Зарегистрирован: 20.01.2004
Сообщения: 107

СообщениеДобавлено: Вт Мар 22 2005 11:27    Заголовок сообщения: Ответить с цитатой

используй shared memory.
_________________
Анархия - мать порядка!!!!!!!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей Инкин



Зарегистрирован: 19.09.2004
Сообщения: 32
Откуда: Россия, Нижний Новгород

СообщениеДобавлено: Вт Мар 22 2005 15:42    Заголовок сообщения: Ответить с цитатой

Хорошо, почитаю про это. Не подскажешь, какую man-страничку надо читать? Или, может быть, ссылки какие-нибудь?
_________________
puts("hit");
printf("uck");
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ersh



Зарегистрирован: 20.01.2004
Сообщения: 107

СообщениеДобавлено: Ср Мар 23 2005 11:30    Заголовок сообщения: Ответить с цитатой

shmget shmctl , там и название других функций будет
_________________
Анархия - мать порядка!!!!!!!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей Инкин



Зарегистрирован: 19.09.2004
Сообщения: 32
Откуда: Россия, Нижний Новгород

СообщениеДобавлено: Ср Мар 23 2005 20:20    Заголовок сообщения: Ответить с цитатой

Спасибо, попробую разобраться.
_________________
puts("hit");
printf("uck");
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...