Как читать карту в php веб-приложении, написанном с использованием Boost C ++ (в разделяемой области)?

Я написал одну карту (ключ, значение), используя C ++, библиотеку Boost в общей области.

void CreateIndexMap()
{
shared_memory_object::remove(Getsharedmemoryregion());
managed_shared_memory segment(create_only,Getsharedmemoryregion(), 10000000);
void_allocator alloc_inst (segment.get_segment_manager());
complex_map_type *mymap = segment.construct<complex_map_type>("MyMap")(std::less<char_string>(), alloc_inst);
}

Создание карты памяти в общей области:

void UpdateIndexMap(std::string str, std::string index, const char* SharedMemory)
{
managed_shared_memory segment(open_only,SharedMemory);
void_allocator alloc_inst (segment.get_segment_manager());
complex_map_type *mymap = segment.find<complex_map_type>("MyMap").first;
std::string h = ConvertTolowercase(str);
char_string patternvalue(h.c_str(), alloc_inst);
char_string indexvalue((index).c_str(), alloc_inst);
mymap->insert(std::pair<char_string, char_string>(patternvalue,indexvalue));
}

Сейчас я разрабатываю одно веб-приложение с использованием PHP и хочу прочитать карту в общей области, чтобы получить данные. Как это реализовать?

1

Решение

Ах, только что заметил этот другой вопрос был также вами.

Вы действительно не хочу усложнять ситуацию, пытаясь встроить код C ++ непосредственно в PHP.

Это должно быть далеко Проще понять, почему дочерний процесс, порожденный со страницы PHP, не позволяет вам получить доступ к общей памяти. В худшем случае, сделайте процесс очень безопасным и просто вызов setuid заставить его выдавать себя за определенного пользователя (при условии хоста со вкусом UNIX). Делать не setuid для root (это безопасность нет-нет).

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector