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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.