如何在共享内存段中创建apr_table_t类型的表?

时间:2010-03-30 20:04:12

标签: apache2 shared-memory

如何在共享内存段中创建apr_table_t类型的表?

2 个答案:

答案 0 :(得分:1)

除了编写自己的实现之外,没有办法创建它。请注意,由于APR不支持调整大小的共享内存段,因此必须预定义哈希表将占用的最大内存量。但是,您可以使用APR DBM库基于哈希表创建一个线程安全的文件数据库,它非常快速且易于使用。

答案 1 :(得分:0)

除非共享内存映射到同一个虚拟地址,否则这可能无法实现。

apr_shm_baseaddr_get函数的文档说:

  

检索的基地址   共享内存段。注意:这个   地址只能在   调用者地址空间,因为这个API   不保证其他   附加过程将维持   相同的地址映射。

APR apr_shm_baseaddr_get documentation

在内部,apr_table_t结构使用apr_array_header_t,其中包含指向apr_pool_t和char(数组元素)的指针。