我试图找出处理C中动态更改格式字符串的最佳方法,而不打开不受控制的格式字符串漏洞。
我有结构中的数据,其中包含浮点数和无符号整数,它们对应于打印的重要数字数。
我想使用整数动态生成格式字符串的精度,以便:
3生成"%.3g"
21生成"%.21g"
有没有一种安全的方法可以做到这一点,而不打开我的代码来攻击呢?
发布于 2015-07-08 17:29:31
是的,你很幸运。您需要使用格式字符串中的精度字段。在这种情况下,您可以提供一个.*表示法,并提供相应的整数参数,以保存精度的值。
您可以使用下面的模式来实现这一点,例如在printf()中。
printf("%.*g", int_precision, decimal_to_print)https://stackoverflow.com/questions/31299590
复制相似问题