如何在共享内存段中创建 apr_table_t 类型的表?
问问题
325 次
2 回答
1
除了编写自己的实现之外,没有其他方法可以创建它。请注意,您必须预定义哈希表将占用的最大内存量,因为 APR 不支持调整共享内存段的大小。但是,您可以使用 APR DBM 库来创建基于哈希表的线程安全文件数据库,它非常快速且易于使用。
于 2012-01-11T21:34:24.820 回答
0
除非共享内存映射到相同的虚拟地址,否则这可能是不可能的。
apr_shm_baseaddr_get 函数的文档说:
检索共享内存段的基地址。注意:此地址仅在调用者地址空间内可用,因为此 API 不保证其他附加进程将保持相同的地址映射。
在内部,apr_table_t 结构使用 apr_array_header_t,其中包含指向 apr_pool_t 和 char(数组元素)的指针。
于 2010-05-06T19:11:51.657 回答