URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3684
[ Назад ]

Исходное сообщение
"Разделяемая память 2."

Отправлено frank , 05-Дек-04 11:53 
Можно ли динамически изменять размер разделяемой памяти, созданной ранее, кроме как удаления старой области и создания новой?

Содержание

Сообщения в этом обсуждении
"Разделяемая память 2."
Отправлено DeadMustdie , 05-Дек-04 15:34 
Менять размер нельзя. Можно поиграться с сегментацией: понадобилась
ещё память - создал новый сегмент, а в отдельном сегменте дескрипторов
сделал об этом факте запись.

"Разделяемая память 2."
Отправлено Murr , 05-Дек-04 21:47 
>Можно ли динамически изменять размер разделяемой памяти, созданной ранее, кроме как удаления
>старой области и создания новой?


Вопрос в стиле "а есть ли Бог?".

Ну если сузить вопрос до реализаций в Linux(вероятно есть еще куча реализаций shmem кроме реализаций в Linux), то для SystemV - нельзя,
а для POSIX - можно (с помощью truncate).


"Разделяемая память 2."
Отправлено frank , 05-Дек-04 22:04 
благодарю, теперь ситуация ясна

"Разделяемая память 2."
Отправлено Murr , 06-Дек-04 14:31 
Извиняюсь,ftruncate, конечно же.

fd = shm_open(...);
...
ftruncate(fd,...);
...
ftruncate(fd,...);