如何在共享内存段中创建apr_table_t类型的表?
答案 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(数组元素)的指针。