有谁知道为什么C标准库中没有snwprintf函数?
我知道swprintf,但是没有一个真正的wchar_t版本的snprintf的相同的语义.据我所知,使用[v] swprintf来实现snwprintf函数没有简单的方法:
与snprintf不同,swprintf不返回必要的缓冲区大小;如果提供的缓冲区不足,它将返回-1.这是由于编码错误导致的失败,所以我不能继续重试,逐渐更大的缓冲区希望它最终会成功.
我想我可以将缓冲区的最后一个元素设置为非NUL,调用swprintf,并假设如果该元素是NUL之后发生截断.但是,是否保证工作?如果swprintf失败,该标准不指定缓冲区应该处于什么状态. (相比之下,snprintf描述写入哪些字符,哪些被丢弃)