LINUX.ORG.RU

Глобальный контекст для двух приложений


0

0
как под никсами создать глобальную переменную(строка текста), чтоб одно приложение создавало его, а второе чтитывало и убивало, к примеру. Вроде файла только в памяти!!! Под виндой есть такая фича как атом(зная имя переменной можно получить хранимое значение). Под никсами, как-то можно так передавать?
anonymous
А оно нужно? Может, стоит о каком-нибудь IPC (Inter Process Communication) подумать.
anonymous
()
Ответ на: комментарий от anonymous
>А оно нужно? дык бы не спрашивал. Просто представь два приложения(точнее библиотеки) уже созданы, а мне надо их подправить таким образом, чтоб в функцию одной библ. передать строку из др.библ-ки, вот так. как это лечиться без создания файла и т.п. на дисках? наверное в никсах никак, правда или нет?
anonymous
()
Под Х-ами есть атомы.

В общем - shmem extension. Читать доки до посинения :) Можно еще через mmap. Т.е. как уже сказали - читай про IPC :)

BaT ★★★★★
()
Ответ на: комментарий от BaT
Ну еще можно через пайпы, или через FIFO... man 2 pipe, man 3 mkfifo
anonymous
()
Ответ на: комментарий от anonymous
> ... наверное в никсах никак, правда или нет? ...

гы, бля

PETER ★★
()
>Вроде файла только в памяти! Файл в памяти - читай man mmap. Не знаю чего другие говорят, но это стандартная ф-ция.
OxiD ★★★★
()
По хорошему, схема разработки двух приложений с общим адресным пространством - не должна восприниматся буквально... Обмен через заранее зарезервированные участки памяти - в операционной системе с мощным механизмом межпроцессного взаимодействия - не эффективно. Кстати развивая такой алгоритм ты очень быстро прийдеш к третьей программе которая будет за этим обменом следить. Могу только посоветовать пересмотреть алгоритм...
dObryi
()
Ответ на: комментарий от dObryi
Подностью согласен с предыдущим автором. Надо писать как можно локальней, т.к. чем глобальнее программа, чем больше она "расшаривает", тем сложнее ее отлаживать. Может в линухе/юниксе нету таких же средств как в винде, но вместо них есть другие, которые несомненно лучше :)
anonymous
()
Ответ на: комментарий от dObryi
>По хорошему, схема разработки двух приложений с общим адресным пространством - не должна восприниматся буквально... Обмен через заранее зарезервированные участки памяти - в операционной системе с мощным механизмом межпроцессного взаимодействия - не эффективно. Кстати развивая такой алгоритм ты очень быстро прийдеш к третьей программе которая будет за этим обменом следить. Могу только посоветовать пересмотреть алгоритм...

А как же парадигма нитей ? ;)

не говоря уже у всяких NUMA/DSM bla-bla-bla

по топику:

1) man ipc далее по ссылкам (SysV)
2) man mmap в районе MAP_ANONYMOUS ну и опять же по ссылкам на тему (POSIX shared memory)
3) man fifo (это в данном контексте используется реже но используется)
sS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.