当前位置: 技术问答>linux和unix
信号处理中sleep函数失效的问题
来源: 互联网 发布时间:2016-10-25
本文导语: 本帖最后由 tgbrfc 于 2010-12-09 19:24:30 编辑 #include #include #include #include #include // 信号处理函数 void handler(int signo) { switch (signo) { case SIGUSR1 : printf("chatch SIGUSER1n"); break; case SIGUSR2 : printf("chatch SIGUSER2n"); b...
#include
#include
#include
#include
#include
// 信号处理函数
void handler(int signo)
{
switch (signo)
{
case SIGUSR1 :
printf("chatch SIGUSER1n");
break;
case SIGUSR2 :
printf("chatch SIGUSER2n");
break;
default :
printf("do nothing");
break;
}
}
int main(int argc, char *argv[])
{
pid_t ppid, cpid;
// 为 SIGUSR1 信号设置处理函数
if (signal(SIGUSR1, handler) == SIG_ERR)
{
perror("can't set handler for SIGUSER1");
exit(1);
}
printf("set handler for SIGUSER1 successful n");
// 为 SIGUSR2 信号设置处理函数
if (signal(SIGUSR2, handler) == SIG_ERR)
{
perror("can't set handler for SIGUSER2");
exit(1);
}
printf("set handler for SIGUSER2 successful n");
sleep(2);
ppid = getpid();
cpid = fork();
if (cpid