vsnprintf()
能否返回一个大于 1 的负值?如果是,它是在什么情况下这样做的?
我尝试使用 %ls
作为 char 数组的格式说明符,还尝试复制大于分配的数组。在这两种情况下,我都得到 -1 作为返回值。
最佳答案
是的,它可以,就像“允许”一样。具体情况取决于您的平台,没有任何规定或规定。唯一可移植的返回值是检查它的 < 0
查看是否有错误。
来自标准 (7.21.6.12 (3), vsnprintf
):
the null-terminated output has been completely written if and only if the returned value is nonnegative and less than
n
.
当然,任何给定的平台都可以对返回值做出额外的保证;请查阅您的文档。
关于vsnprintf 能否返回大于 1 的负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9091960/