shmget で Linux 共有メモリを作成し、最初のメモリ アドレスにこのようなグローバル管理構造体を作成します。
typedef struct{
mini_kv_key *slots;
unsigned int slots_mask;
unsigned int slots_num;
mini_cache_segment **segments;
unsigned int segments_num;
unsigned int segments_mask;
} mini_cache_globals;
使ってみます
mini_cache_globals mini_cache = shmat(0, NULL, 0);
この管理構造体を取得しますが、使用するとわかります
mini_cache->slots[index];
mini_kv_key を取得すると、セグメント フォールトが返されます。
mini_cache->segments_num[index];
下手な英語で申し訳ありません。コードはこちらです