使用标准char*
字符串时,snprintf
andvsnprintf
函数将返回输出字符串的长度,即使该字符串由于溢出而被截断。*似乎 ISO C 委员会在添加swprintf
and时不喜欢这个功能vswprintf
,它返回 -1在溢出。
有谁知道可以提供这个长度的函数?我不知道潜在字符串的大小。我可能要求太多,但是..我宁愿不:
- 分配一个巨大的静态临时缓冲区
- 迭代地分配和释放内存,直到找到适合的大小
- 添加一个额外的库依赖
- 编写我自己的格式字符串解析器
*我意识到 MSVC 不这样做,而是提供scprintf
andvscprintf
函数,但我正在寻找其他编译器,主要是 GCC。