☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

信号处理函数应为 POF

15.5 ID_nonPOFHandler
目录 › next › previous

POF(plain old function)是不依赖 C++ 特性且与 C 兼容的函数,信号处理函数应为 POF。

异常处理、资源的分配与回收、动态类型转换以及相当一部分的标准库功能是非信号安全的,会导致未定义的行为,详见“C++ 信号处理函数”,即使某些特性可以用于信号处理,也是由实现定义的。

示例:

void handler(int signum) noexcept;   // Non-compliant

应改为:

extern "C" void handler(int signum);   // Compliant

相关

ID_sig_dataRaces ID_sig_nonAsyncSafeCall

依据

ISO/IEC 14882:2003 18.7(5)-implementation ISO/IEC 14882:2011 18.10(9)-implementation ISO/IEC 14882:2017 21.10.4(3)-undefined

参考

SEI CERT MSC54-CPP
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.