用C计算Var Args长度

时间:2011-01-19 15:29:08

标签: c mingw mingw32 printf

我正在尝试将asprintf()移植到Windows,因为它在Linux上是一个GCC库函数,在Windows上不存在。

我一直在计算var args的长度,所以我可以为它们分配内存。我尝试了两种方法:

  1. 将var args写入文件,然后获取函数的结果(这是写入的字节数= var args的长度),但它很愚蠢,因为用户将在他的app dir中看到内部随机数据

  2. 使用带有NULL的函数vsprintf()作为第一个参数(将输出写入的变量),因此它返回var args的长度,但这个失败,因为它仅适用于XP,Windows 7没有不允许写入NULL变量。

  3. 关于如何解决这个问题的更多想法?

1 个答案:

答案 0 :(得分:5)

尝试使用_vscprintf,它只返回所需的计数(不包括终止空值)