您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

嵌入式linux开发笔记--给一个进程发送信号


文章引自 https://www.cnblogs.com/52php/p/5813867.html


#include <signal.h>
#include <stdio.h>
#include <unistd.h>
 
void ouch(int sig)
{
    printf("\nOUCH! - I got signal %d\n", sig);
     
    // 恢复终端中断信号SIGINT的默认行为
    (void) signal(SIGINT, SIG_DFL);
}
 
int main()
{
    // 改变终端中断信号SIGINT的默认行为,使之执行ouch函数
    // 而不是终止程序的执行
    (void) signal(SIGINT, ouch);
    while(1)
    {
        printf("Hello World!\n");
        sleep(1);
    }
 
    return 0;
}
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
 
static int alarm_fired = 0;
 
void ouch(int sig)
{
    alarm_fired = 1;
}
 
int main()
{
    pid_t pid;
    pid = fork();
    switch(pid)
    {
    case -1:
        perror("fork failed\n");
        exit(1);
    case 0:
        // 子进程
        sleep(5);
         
        // 向父进程发送信号
        kill(getppid(), SIGALRM);
        exit(0);
    default:;
    }
     
     // 设置处理函数
    signal(SIGALRM, ouch);
    while(!alarm_fired)
    {
        printf("Hello World!\n");
        sleep(1);
    }
    if(alarm_fired)
        printf("\nI got a signal %d\n", SIGALRM);
 
    exit(0);
}

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进