int sigqueue(pid_t pid, int sig, const union sigval value);
union sigval {
int sival_int;
void *sival_ptr;
};
The parent decides to use memory from its heap and sends the shallow copy of data (sending address of data through sival_ptr) to child through sigqueue(). Since two process have different address space, is the child allowed to access data which is in address space of its parent? What is the purpose of sival_ptr if any access of data through the pointer will be illegal?