[Linux信号]使用sigqueue函数发送信号
/*使用sigqueue函数向进程自身发送一个SIGUSR1信号,并获取该信号的信号值*/#include<stdio.h>#include<signal.h>#include<stdlib.h>//SIGUSR1的处理函数voidsignalDeal(intsigno,siginfo_t*info,void*context){char*pMsg=(char*)info->si_value.sival_ptr;printf("接收到的信号标号是:%d\n",signo);printf("接收到信息:%s\n",pMsg);}//主函数intmain(intargc,char*argv[]){structsigactionsigAct;sigAct.sa_flags=SA_SIGINFO;sigAct.sa_sigaction=signalDeal;if(sigaction(SIGUSR1,&sigAct,NULL)==-1){printf("sigaction函数调用失败!\n");exit(1);}sigval_tval;charpMsg[]="thisisatest!";//这是一段测试用的字符串val.sival_ptr=pMsg;if(sigqueue(getpid(),SIGUSR1,val)==-1){printf("sigqueue函数调用失败!\n");exit(1);}sleep(3);//休眠3秒return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。