我正在阅读有关在以下位置使用安全字符串的信息

https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=5111861

如下所述。

SafeStr 字符串,如果使用得当,可以消除其中的许多错误,并提供对遗留代码的向后兼容性。

我的问题是作者所说的“同时提供对遗留代码的向后兼容性”是什么意思。 ?要求举例说明。

感谢您的时间和帮助

最佳答案

这意味着来自标准 libc(和其他)的函数,它需要普通的空终止字符数组,甚至可以在那些 SafeStr 上工作。这可能是通过将控制结构置于字符串开头的负偏移量(或其他一些技巧)来实现的。

示例:strcmp() printf() 等可以直接用于 SafeStr 返回的字符串。

相比之下,还有其他 C 语言的字符串库,它们非常“智能”和动态,但是这些字符串不能不转换为“老派”函数就可以发送。

关于c - 在 C 中使用 SafeStr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15904611/

10-09 08:43