设计两个程序,要求进程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的可执行文件在后台执行。