Как выбрать фиксированный адрес для отображения разделяемой памяти

Я хотел бы использовать разделяемую память между несколькими процессами и хотел бы иметь возможность продолжать использовать необработанные указатели (и контейнеры stl).

Для этой цели я использую общую память, отображаемую по фиксированному адресу :

segment = new boost::interprocess::managed_shared_memory(
    boost::interprocess::open_or_create,
    "MySegmentName",
    1048576, // alloc size
    (void *)0x400000000LL // fixed address
);

Какова хорошая стратегия выбора этого фиксированного адреса? Например, следует ли мне просто использовать довольно большое число, чтобы уменьшить вероятность того, что у меня закончится место в куче?

13
задан hrr 9 May 2011 в 17:20
поделиться