我一直在对strncmp的安全性进行一些研究,我知道它不是空终止的。但我也看到有些人说它"不是strcmp((的安全替代品"。谁能向我解释一下?我一直在寻找一段时间,但实际上我能找到的唯一一个地方是在SO上关于几个问题。也许有人可以链接我一些资源来研究这个问题? 谢谢。
我认为这个线程可能会对您有所帮助 - 是否有任何安全的 strcmp?
简而言之,即使您可以发送要比较的字符串的大小,如果字符串短于大小"n"并且它不是以空结尾的,strncmp 仍将读取垃圾值。
类似于您的问题 - 为什么要使用 strncpy 而不是 strcpy?