AFL setup_signal_handlers

不太理解sigaction及其中字段的含义和用法:

cpp 复制代码
static void setup_signal_handlers(void) {
  struct sigaction sa; // 定义一个sigaction结构体变量sa

  // 初始化sa结构体
  sa.sa_handler   = NULL; // 默认的信号处理函数设置为NULL
  sa.sa_flags     = SA_RESTART; // 设置标志为SA_RESTART,使被信号打断的系统调用自动重启
  sa.sa_sigaction = NULL; // 复杂信号处理函数设置为NULL

  sigemptyset(&sa.sa_mask); // 初始化信号集为empty,即不阻塞任何信号

  /* Various ways of saying "stop". */
  // 设置处理"停止"信号的处理函数
  sa.sa_handler = handle_stop_sig; // handle_stop_sig是一个函数,用于处理SIGHUP, SIGINT, SIGTERM这些信号
  sigaction(SIGHUP, &sa, NULL); // 当收到挂起信号时调用handle_stop_sig
  sigaction(SIGINT, &sa, NULL);  // 当收到中断信号时调用handle_stop_sig
  sigaction(SIGTERM, &sa, NULL); // 当收到终止信号时调用handle_stop_sig

  /* Exec timeout notifications. */
  // 设置处理超时通知的处理函数
  sa.sa_handler = handle_timeout; // handle_timeout是一个函数,用于处理SIGALRM信号
  sigaction(SIGALRM, &sa, NULL); // 当收到定时器到期信号时调用handle_timeout
}

先去了解下,有没有描述的清楚的中文博客。

感觉大部分博客都描述的差不多,还是不太理解。

需要再往前追溯下,什么是Linux中的信号?

看了这篇博客:https://blog.csdn.net/qq_45358642/article/details/129758736,

简单总结下,信号可以进程、线程、甚至用户(kill)主动发出的,进程可以通过注册信号处理函数来接收信号并处理,大概就是这么个意思。

下面这段代码:

cpp 复制代码
  sa.sa_handler = handle_stop_sig; // handle_stop_sig是一个函数,用于处理SIGHUP, SIGINT, SIGTERM这些信号
  sigaction(SIGHUP, &sa, NULL); // 当收到挂起信号时调用handle_stop_sig
  sigaction(SIGINT, &sa, NULL);  // 当收到中断信号时调用handle_stop_sig
  sigaction(SIGTERM, &sa, NULL); // 当收到终止信号时调用handle_stop_sig

如果收到了SIGHUP, SIGINT, SIGTERM这3个信号,那么就调用handle_stop_sig处理,后面handle_timeout也是类似的。

暂时就理解这么多,大概知道用法就行。

相关推荐
Ivanqhz12 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
殷色玫瑰15 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
꯭自꯭闭꯭16 小时前
DM7主备升级方案
linux·服务器·数据库
用户41071920132516 小时前
VMware 虚拟机Ubuntu 环境linux远程连接失败
linux
lisanmengmeng16 小时前
Nagios邮件报警的配置
linux·运维·服务器
Ruiery16 小时前
Linux 6.6内核 CPU 深度解析(六):cpufreq
linux·运维·服务器
倔强的石头10617 小时前
【Linux指南】动静态库系列(十一):PLT 与延迟绑定:第一次调用动态库函数时发生了什么
linux·人工智能·python
硅基手札17 小时前
【linux内核专栏 08】时间与定时器
linux·运维·服务器
想做小南娘,发现自己是女生喵18 小时前
Linux之Ubuntu入门篇知识总结
linux·运维·服务器
CHEEVEN_QY18 小时前
搅拌摩擦焊FSW工艺参数对焊缝成形影响的实验研究10.1
linux·服务器·数据库