0

共有メモリ セグメントに apr_table_t タイプのテーブルを作成するにはどうすればよいですか?

4

2 に答える 2

1

独自の実装を作成する以外に、それを作成する方法はありません。APR は共有メモリ セグメントのサイズ変更をサポートしていないため、ハッシュ テーブルが使用するメモリの最大量を事前に定義する必要があることに注意してください。ただし、APR DBM ライブラリを使用して、ハッシュ テーブルに基づいてスレッド セーフなファイル データベースを作成できます。これは非常に高速で使いやすいものです。

于 2012-01-11T21:34:24.820 に答える
0

共有メモリが同じ仮想アドレスにマップされていない限り、これは不可能な場合があります。

apr_shm_baseaddr_get 関数のドキュメントには次のように書かれています。

共有メモリ セグメントのベース アドレスを取得します。注: この API は、他の接続プロセスが同じアドレス マッピングを維持することを保証しないため、このアドレスは呼び出し元のアドレス空間内でのみ使用できます。

APR apr_shm_baseaddr_get ドキュメント

内部的に apr_table_t 構造体は、apr_pool_t および char (配列要素) へのポインターを含む apr_array_header_t を使用しています。

于 2010-05-06T19:11:51.657 に答える