是否有asprintf的wchar_t版本?

ghe*_*800 7 c printf wchar-t

我需要一个C函数,它返回格式化字符串的最终长度,这样我就可以正确地分配目标字符串,而不是自己计算长度.snprintf由于无法编写整个字符串,这就是其中的一个,但不幸的是,它没有广泛的字符替代品.

swprintf 如果出现错误则返回-1,而不是所需的长度(为什么不是相同的行为?!?)

提到的标题asprintf似乎也没有帮助,因为它只提供非宽版本.

_vscwprintf 可以在Windows上使用,但我需要一个跨平台,标准版本或至少一个Linux版本,我将#ifdef代码.

有任何想法吗?谢谢!

R..*_*R.. 3

POSIX 2008 添加了该open_wmemstream函数,该函数与 一起vfwprintf,完全可以满足您的需要。它以前是 GNU 扩展,因此它已经在 GNU 系统上可用很长时间了。

这可以很容易地用于构造awprintf包装器。