【发布时间】:2011-09-02 04:27:34
【问题描述】:
当使用标准 char* 字符串时,snprintf 和 vsnprintf 函数将返回输出字符串的长度,即使该字符串由于溢出而被截断。* 似乎 ISO C 委员会没有就像他们添加 swprintf 和 vswprintf 时的这个功能,它们在溢出时返回 -1。
有谁知道可以提供这个长度的函数吗?我不知道潜在字符串的大小。我可能要求太多,但是..我宁愿不:
- 分配一个巨大的静态临时缓冲区
- 反复分配和释放内存,直到找到适合的大小
- 添加额外的库依赖
- 编写我自己的格式字符串解析器
*我意识到 MSVC 不这样做,而是提供 scprintf 和 vscprintf 函数,但我正在寻找其他编译器,主要是 GCC。
【问题讨论】:
-
我从来不知道 MSVC 的
scprintf()函数集。谢谢指点。