You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCC中__fortify_function关键字的具体作用是什么?

__fortify_function 的具体作用解释

__fortify_function是GNU C编译器提供的扩展宏,和FORTIFY_SOURCE安全加固机制深度绑定,核心作用是标记需要被安全增强的函数。

当编译时开启-D_FORTIFY_SOURCE=1或-D_FORTIFY_SOURCE=2选项后,编译器会对标记了该宏的函数做两层安全处理:

  • 编译期校验:检查函数调用时的参数合法性,比如格式化字符串和后续参数的类型匹配、缓冲区大小是否足够,发现问题直接抛出警告或错误。
  • 运行时替换:将原函数替换为更安全的实现版本,比如针对可变参数的格式化函数,会额外校验参数的合理性,避免出现越界访问、格式串注入这类安全漏洞。

你遇到的DoLog是可变参数的日志输出函数,加上这个宏后,编译器会帮你规避调用时常见的错误——比如用%d传了字符串、格式串参数数量不匹配这类问题,同时在运行时减少潜在的安全风险。

需要注意的是,这个宏仅在GCC、Clang等兼容GNU扩展的编译器下生效,且必须配合FORTIFY_SOURCE宏使用;如果关闭FORTIFY_SOURCE,这个宏会被直接忽略,函数就是普通的定义。

内容的提问来源于stack exchange,提问作者epilitimus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:32:32