读书人

sigqueue发送外加信息无效

发布时间: 2012-10-15 09:45:24 作者: rapoo

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.

[解决办法]

探讨

只能发送字符串字面量,其他都不可以引用:

C/C++ code
[liangdong@bb-browser-test00.vm.baidu.com c_project]$ ./main
hello world
[liangdong@bb-browser-test00.vm.baidu.com c_project]$ cat main.c
#include <std……

读书人网 >UNIXLINUX

热点推荐