🐟 (@stevessr)经过六年努力和 360 多个补丁,Linux 终于彻底移除了 strncpy API | written by Michael Larabel 中发帖

[!quote]+ 
Linux 7.2 最终从 Linux 内核中移除了 strncpy API。用于复制指定字节数的 strncpy() 函数早已被弃用,经过六年的努力和数百个补丁的提交,Linux 内核中已不再需要 strncpy 接口,因此它最终被移除。
多年来,Linux 内核中的 strncpy 函数一直是“持续的 bug 源”,原因在于其反直觉的语义和 NUL 终止符的行为,以及由于目标位置冗余的零填充而导致的性能问题。过去六年间,开发者进行了大约 362 次代码提交,才最终在 Linux 7.2 中彻底解决了内核中对 strncpy 代码的依赖问题。
[image]
周五的这次合并消除了 strncpy API 和最后一个针对每个 CPU 架构的 strncpy 实现。
Linux 内核代码应该使用 strscpy() 代替 strncpy,用于以 NUL ...