Shared memory example

Can someone post a really small example of connecting to sysv shared
memory and accessing data there?

I'm trying to connect to some previously-created shmem and it's not
really working.

        key = SystemVIPC.ftok("/tmp/key_file", 1)
        shmem = SharedMemory.new(key)
        p shmem.size

I get: "No such file or directory - shmget(2) (Errno::ENOENT)" when
trying to get shmem.

Thanks in advance,
Joe

Don't forget to shmem.attach.

You can use the (linux) command "ipcs" to take a look at existing shared
memory segments, and make sure you are indeed attaching to what you think you
are. You should also verify that the value of "key" matches up to the real
key value of the segment (again, using ipcs).

HTH,
Caleb

···

On Monday 04 April 2005 03:41 pm, Joe Van Dyk wrote:

        key = SystemVIPC.ftok("/tmp/key_file", 1)
        shmem = SharedMemory.new(key)
        p shmem.size

It's failing on SharedMemory.new(key). I tried printing the key (with
puts key) and it's different than what ipcs is reporting as the id.

···

On Apr 5, 2005 5:09 AM, Caleb Tennis <caleb@aei-tech.com> wrote:

On Monday 04 April 2005 03:41 pm, Joe Van Dyk wrote:
> key = SystemVIPC.ftok("/tmp/key_file", 1)
> shmem = SharedMemory.new(key)
> p shmem.size

Don't forget to shmem.attach.

You can use the (linux) command "ipcs" to take a look at existing shared
memory segments, and make sure you are indeed attaching to what you think you
are. You should also verify that the value of "key" matches up to the real
key value of the segment (again, using ipcs).

HTH,
Caleb