So the
table isn't shared, but the data it holds
is shared?
Using the
mmap system call you can map a file into shared memory. After you map it, the file effectively "is" memory; reads from the memory read from the file, writes to the memory write to the file. The OS only loads the parts you use. When you map it, it gives you a pointer; the pointer plus an offset gives you a particular location in that file.
The
hashit library is a generic hash table that stores pointers. Pointers to shared memory aren't special, so it'll hold those too.
If you need more help you're going to have to stop the monosyllabic nonanswers and explain your data structures and modes of access in detail.