设计两个程序,要求进程A中自定义信号SIGUSR1的响应接口,要求进程B每隔一段时间向进程A就发送SIGUSR1信号,测试进程A是否可以执行关联的响应接口。

设计两个程序,要求进程A中自定义信号SIGUSR1的响应接口,要求进程B每隔一段时间向进程A就发送SIGUSR1信号,测试进程A是否可以执行关联的响应接口。

程序A:

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

// 信号处理函数
void signal_handler(int signum)
{
    printf("Received SIGUSR1 signal!\n");
    
}

int main() {
    // 注册信号处理函数
    signal(SIGUSR1, signal_handler);

    // 无限循环,等待信号
    while (1);

    return 0;
}

程序B:

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

int main() {

    while (1) {
        // 向进程A发送SIGUSR1信号
        kill(20753, SIGUSR1);
        sleep(1); // 等待1秒
    }

    return 0;
}

​ 启动两个终端进行,一个终端启动程序A的可执行文件,一个终端启动程序B的可执行文件(注意在后面加上 & 这个符号),让程序B的可执行文件在后台执行。

posted @ 2024-05-27 00:23  小懿同学  阅读(16)  评论(0)    收藏  举报