/*
使用sigqueue函數(shù)向進(jìn)程自身發(fā)送一個SIGUSR1信號,
并獲取該信號的信號值
*/
#include
#include
#include
//SIGUSR1的處理函數(shù)
void signalDeal(int signo,siginfo_t *info,void *context)
{
char *pMsg=(char*)info->si_value.sival_ptr;
printf("接收到的信號標(biāo)號是:%d\n", signo);
printf("接收到信息:%s\n", pMsg);
}
//主函數(shù)
int main(int argc,char *argv[])
{
struct sigaction sigAct;
sigAct.sa_flags = SA_SIGINFO;
sigAct.sa_sigaction = signalDeal;
if(sigaction(SIGUSR1,&sigAct,NULL)==-1)
{
printf("sigaction函數(shù)調(diào)用失敗!\n");
exit(1);
}
sigval_t val;
char pMsg[ ]="this is a test!"; //這是一段測試用的字符串
val.sival_ptr = pMsg;
if(sigqueue(getpid(),SIGUSR1,val) == -1)
{
printf("sigqueue函數(shù)調(diào)用失敗!\n");
exit(1);
}
sleep(3); //休眠3秒
return 0;
}
網(wǎng)站題目:[Linux信號]使用sigqueue函數(shù)發(fā)送信號
網(wǎng)站地址:
http://weahome.cn/article/gcidhj.html