|
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
|
|
Как сделать так, чтобы две разные программы могли работать с одной и той же областью оперативной памяти?22.01.2011, 13:22. Показов 3092. Ответов 15
Метки нет (Все метки)
Собственно даже незнаю куда копать.
Пробовал в одной программе вывести указатель на массив, а в другой указателю присвоить это значение чего-то компилятор ругается( Интересует как сделать так чтобы две разные программы могли оперировать одним и тем-же массивом (в данном случае массив состоит из чисел) находящимся в оперативной памяти.
0
|
|
| 22.01.2011, 13:22 | |
|
Ответы с готовыми решениями:
15
Как сделать так, чтобы 2 программы могли читать один и тот же файл в одно время Две разные планки оперативной памяти как лучше ? |
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 22.01.2011, 14:34 | |
|
sfinexer, самое простое создается файл, потом оба процесса проецируют в память посредством memory file mapping, для этого даже физически файл создавать не надо, у рихтера есть пример
http://www.hackchina.com/en/r/... .cpp__html
0
|
|
|
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
|
||
| 22.01.2011, 14:48 [ТС] | ||
|
Мне бы хотелось бы оперировать в двух программах с массивами, а не с файлом, так как запись и чтение скорее всего будет асинхронной. Может есть метод именно как-то приравнять указатели на память, чтобы программы видели этот массив? Массив порядка 50 мегабайт.
0
|
||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||
| 22.01.2011, 14:55 | ||
|
насчет асинхронности не уверен, но думаю флагами это лечится а если 50 метров то тем более есть смысл использования разделяемого файла
0
|
||
|
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
|
||
| 22.01.2011, 15:57 [ТС] | ||
|
И есть программа подготовки констант для расчета, она должна работать сама по себе, она в принципе может и вобще быть не запущена, но в идеале она подготавливает константы для расчета так как ей в голову взбредет, нулевой элемент массива я хочу использовать как флаг останова расчета или прерывания расчета. В случае с файлом как мне известно чтобы записать в него что-то он должен быть закрыт сторонней программой, а писать цикл открытия/закрытия файла мне бы не хотелось, так как это замедлит работу программ. Вторая программа также может динамически писать в этот массив свои расчетные константы, а основная программа брать их от туда и делать расчет следующих параметров. Объединение двух программ в один exe файл не целесообразна из соображения что развивать большую программу сложнее чем маленькие, к тому же есть вероятность что программы могут быть написаны на разных языках (например фортран и C++). А как же сделано в шахматных программах? там отдельно оболочка (например тотже фритц) и отдельно шахматный движек (например рыбка) они же как-то обмениваются результатами между собой...
0
|
||
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 22.01.2011, 16:04 | |
|
0
|
|
|
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
|
||
| 22.01.2011, 18:38 [ТС] | ||
|
file mapping как я читал, загружает файл в область оперативной памяти которую система выделила как адресуемую для программы. Это несколько другое. Иными словами (могу быть не прав), если программа кушает 50 мегабайт оперативной памяти, после file mapping она ее увеличит на величину этого файла. Что совершенно мне не подходит, ибо из ДРУГОЙ программы (не ПОД программы) я не могу попасть с область видимости первой программы.
0
|
||
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
| 22.01.2011, 18:41 | |
|
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 22.01.2011, 21:03 | |
|
Можно через треды и мьютексы сделать, правда это-таки будет "одна большая программа", а не "много маленьких", но вся прелесть в том, что вы можете использовать для каждой части (каждой нити) отдельную функцию, типа main1, main2 и main3, и развивать свои "маленькие программы" совершенно параллельно, можно их даже по разным сурс-файлам разнести.
0
|
|
|
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
|
||
| 23.01.2011, 20:05 [ТС] | ||
|
Буду делать все в одной программе вобщем.
0
|
||
| 23.01.2011, 21:37 | |
|
Не по теме: Kastaneda, ну я-то предложил через треды плюс мьютексы, а тут только одна большая ;)
0
|
|
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
| 23.01.2011, 22:15 | |
|
вот так межпроцессное взаимодействие свелось к двум потокам
1
|
|
|
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
|
||
| 24.01.2011, 12:31 [ТС] | ||
|
0
|
||
|
267 / 189 / 33
Регистрация: 15.01.2011
Сообщений: 681
|
|
| 24.01.2011, 16:19 | |
|
как вариант можно попробовать организовать доступ к ресурсу через пайпы, т.е. написать программу (сервер) которая будет иметь монопольный доступ к ресурсу (писать ,читать) а все другие заитересованные в данном ресурсе программы (клиенты) будут подключаться через пайпы ,сокеты, и т.д. и запрашивать необходимые действия у сервера. Получится что вроде базы данных))).
0
|
|
| 24.01.2011, 17:25 | |
|
Не по теме: ssXXss, я о пайпах сразу подумал))) но опотом почему-то они из головы вылетели, оставив место тредам...
0
|
|
| 24.01.2011, 17:25 | |
|
Помогаю со студенческими работами здесь
16
Графика: сделать так, чтобы две линии, исходящие из одной точки, как бы шагали Как сделать так чтобы с одной переменной можно было работать на нескольких формах? Как сделать так, чтобы строки одной таблицы не могли удалиться до тех пор, пока существуют соответствующие строки другой таблицы? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|