第10章 信号

来源:互联网 发布:数字网络广播系统 编辑:程序博客网 时间:2024/05/22 14:20

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
0 0
原创粉丝点击