Я не знаю, как составить список имен или получить сопоставления ключей / имен. Но я думаю, что знаю API, который решит вашу проблему.
Я думаю, что вы можете прикрепить сегмент к ключу с помощью интерфейса System V, который также является API-интерфейсом Posix. Я считаю, что это работает примерно так:
int attach_shmem(key_t key, void** pp){
void* p;
int id;
id = shmget(key, 0, 0);
if (id < 0) {
perror("shmget");
return ERR_SHMGET;
}
p = shmat(id, 0, 0);
if ((long)p == -1) {
perror("shmat");
return ERR_SHMAT;
}
*pp = p;
return 0;
}