The manpage for sigqueue(3) says that an integer or pointer may be passed as a parameter to the process that receives the signal.

Would passing a pointer imply that the sender and receiver already have a region of explicitly shared memory?

The context I'm considering is using SIGHUP to indicate to a long-running Linux program that its command line should be assumed to have changed. I'm obviously aware that there are plenty of other ways of doing this using unix-domain sockets etc.

1 Answer 1


Yes, it assumes that the sender and receiver already have a region of shared memory which this pointer address is in. Else that pointer will point to some other memory value at the receiver end compared to the sender.

To have that shared memory, you can use shm_open and mmap

  • Many thanks. The alternative would have been temporary storage handled by the kernel, but after reviewing the data structures I decided that was probably not the case. Commented May 26 at 16:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .