sigqueue发送附加信息无效
if ( fork() == 0 )
{
union sigval sval;
char *data = new char[10];
memset(data,0,sizeof(data));
for(int i=0;i < 5;i++)
data[i]='2';
//sval.sival_int = 5;
sval.sival_ptr = data;
sigqueue(getppid(), 35, sval);
}
向父进程发送信号,父进程确实收到了信号,但是打印出来的siginfo_t.si_ptr确是空的,如果使用sival_int的话确又能正常显示,为什么会这样呢?sa_flags已经设置为SA_SIGINFO.
------解决方案--------------------