您的位置:首页 > 产品设计 > UI/UE

第10章 信号

2015-10-12 13:32 453 查看

1) signal

信号函数的原型如下

#include <signal.h>
typedef void (*sighandler_t)(int);


一个简单的信号绑定的例子,当向该程序发送-USER1或者-USER2信号时,调用信号处理函数sig_user

signal_demo.cpp

#include <signal.h>$
#include <stdio.h>$
#include <unistd.h>$

static void sig_usr(int); /* one handler for both signals */$

int main(void)$
{
if (signal(SIGUSR1, sig_usr) == SIG_ERR)$
printf("can’t catch SIGUSR1");
if (signal(SIGUSR2, sig_usr) == SIG_ERR)$
printf("can’t catch SIGUSR2");
for ( ; ; )$
pause();$
return 0;$
}

static void sig_usr(int signo) /* argument is signal number */$
{
if (signo == SIGUSR1)$
printf("received SIGUSR1\n");$
else if (signo == SIGUSR2)$
printf("received SIGUSR2\n");$
else$
printf("received signal %d\n", signo);$
}


测试

g++ signal_demo.cpp -o signal_demo

./signal_demo &

kill -USER1 pid

kill -USER2 pid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息