微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么strcpy()和strcat()在嵌入式域中不好用

在这里,我想了解strcpy()和strcat()的缺点

我想了解嵌入式域/环境中的这些功能危险区域.

有人告诉我,我们从不在嵌入域中使用strcpy,strcat和strlen函数,因为它以null结尾,有时我们处理加密数据和null字符,所以我们无法得到实际结果,因为这些函数停止在null字符上.

所以我想知道这些功能的所有东西和其他替代品.我们如何使用其他替代功能

解决方法

str *函数适用于字符串.如果您正在处理字符串,只要您正确使用它们就可以使用它们 – 如果您错误地使用它们,则很容易创建 buffer overflow.

如果你正在处理二进制数据,听起来就像你一样,字符串处理函数是不合适的(它们毕竟是用于字符串,而不是二进制数据).使用mem *函数处理二进制数据.

在C中,字符串是以nul字节结尾的字符序列.如果您正在处理二进制数据,那么很可能是该数据中值为0的char,字符串处理函数假定为字符串的结尾,或者数据不包含任何nul字节且不是nul终止,这将导致字符串函数超出缓冲区的末尾.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐