在这里,我想了解str
cpy()和strcat()的缺点
我想了解嵌入式域/环境中的这些功能危险区域.
有人告诉我,我们从不在嵌入域中使用strcpy,strcat和strlen函数,因为它以null结尾,有时我们处理加密数据和null字符,所以我们无法得到实际结果,因为这些函数停止在null字符上.
所以我想知道这些功能的所有东西和其他替代品.我们如何使用其他替代功能
str *
函数适用于字符串.如果您正在处理字符串,只要您正确使用它们就可以使用它们 – 如果您
错误地使用它们,则很容易创建
buffer overflow.
如果你正在处理二进制数据,听起来就像你一样,字符串处理函数是不合适的(它们毕竟是用于字符串,而不是二进制数据).使用mem *函数处理二进制数据.
在C中,字符串是以nul字节结尾的字符序列.如果您正在处理二进制数据,那么很可能是该数据中值为0的char,字符串处理函数假定为字符串的结尾,或者数据不包含任何nul字节且不是nul终止,这将导致字符串函数超出缓冲区的末尾.