I currently have a number of processes communicating via sigqueue(), passing a single integer in the sival_int field of the sigval union.
Now I'd like to expand on this, so I've tried the sigqueue() pointer-passing functionality by instead using the sival_ptr field in the sigval union.
The pointer gets passed okay, but it turns out to be an address relative to the signaler, not an absolute address.
Thus, when the signaled process gets it, and tries to access the structure that it points to, he just accesses that address in his _own_ address space, not actually where the structure exists in the signaler.
How do I get this to work in the manner in which the available documentation (Sun man pages, "Posix.4: Programming For The Real World", etc) seems to indicate it should?