[Linux信号]使用sigqueue函数发送信号

/*
使用sigqueue函数向进程自身发送一个SIGUSR1信号,
并获取该信号的信号值
*/
#include
#include
#include
//SIGUSR1的处理函数
void signalDeal(int signo,siginfo_t *info,void *context)
{
    char *pMsg=(char*)info->si_value.sival_ptr;
    printf("接收到的信号标号是:%d\n", signo);
    printf("接收到信息:%s\n", pMsg);
}
//主函数
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函数调用失败!\n");
        exit(1);
    }
    sigval_t val;
    char pMsg[ ]="this is a test!";   //这是一段测试用的字符串
    val.sival_ptr = pMsg;
    if(sigqueue(getpid(),SIGUSR1,val) == -1)
    {
        printf("sigqueue函数调用失败!\n");
        exit(1);
    }
    sleep(3);     //休眠3秒
    return 0;
}

分享文章:[Linux信号]使用sigqueue函数发送信号
文章来源:http://bzwzjz.com/article/gcidhj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站制作公司 成都网站制作 企业网站制作 高端网站设计推广 成都网站设计公司 成都网站建设 营销网站建设 响应式网站建设 高端网站建设 营销型网站建设 重庆网站建设 成都响应式网站建设 成都网站制作 成都网站设计制作公司 成都网站建设 网站设计制作报价 营销型网站建设 成都网站建设流程 重庆外贸网站建设 成都网站设计 成都网站设计 成都商城网站建设