我知道
printf(user_input)
很危险,但是printf("%s", user_input)
呢?只要 user_input
终止于 NUL,这通常是安全的吗?
我知道
很危险,但是printf(user_input)
呢?这通常安全吗?printf("%s", user_input)
后者是通常推荐的前者的替代品之一。它解决了导致
printf(user_input)
特别危险的问题。
仍然存在更普遍的问题,例如如果
user_input
不是指向以空结尾的字符串的指针,或者该字符串包含从输出设备引发特殊行为的字符,或者标准输出流已关闭,会发生什么情况,或者也许是其他东西。
我不确定“通常安全”是否能很好地描述这一切,但也许这确实是您的意思。