#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
// 全局变量
int global_variable = 0;
// 信号处理函数,用于捕获并处理信号
void signal_handler(int signal) {
if (signal == SIGUSR1) {
// 打印全局变量的值
printf("Global variable value: %d\n", global_variable);
}
}
int main() {
// 注册信号处理函数
signal(SIGUSR1, signal_handler);
// 后台运行的主循环
while (1) {
// 更新全局变量的值
global_variable++;
// 等待一段时间,模拟程序在后台运行
sleep(1);
}
return 0;
}
使用gcc编译后运行
通过ps -ef|grep 程序名,能查看到线程pid
通过
kill -SIGUSR1 <pid>
可以触发程序打印