c/c++ linux c unix c 信号处理

发布网友

我来回答

2个回答

热心网友

1、首先需要使用connect函数将信号和槽关联起来。
2、发送信号一般使用emit fa(参数)这样的形式。不过我想你这样的代码也是对的。
3、有个if(pid==0)的处理,还要有个对应else的处理,在else中也要发送信号。
才疏学浅,希望能抛砖引玉。主要是参与一下,学习学习,呵呵!追问

追答呵呵!我竟然认为是Qt问题。多谢包涵!
其实fork就是进程相关的,不过由于主观认为是Qt的信号槽问题,就千方百计的按照那种方式去理解、补救——基础薄弱害死人哪!

热心网友

我刚刚自己调试了下。发现是信号发太早的原因。
因为创建子程序跟注册函数都需要时间,
所以父进程发送信号kill(pid,50)时,子进程还没有执行signal(50,fa);
解决办法:18,19行间。加个int i; for(i=0;i<60000;i++);
18 printf("父进程发送信号\n");
19 kill(pid,50);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com