我需要函数 count_sprintf() 应该返回
格式化缓冲区所需的字符数(不是 inc nul 字节),在 Win32 和 Linux 上。
int count_sprintf(const char *format, va_list ap);
当格式化值长于缓冲区大小时,vsnprintf 的返回值在 Win32 与 Linux 之间存在细微差异。这就是我寻求帮助的原因。
你能为这个功能提供可移植的代码(#ifdef WIN32)吗?
要像这样使用的函数:
int bufsize = 1 + count_snprintf(format, ap);
char *buf = (char*)malloc(bufsize);
vsnprintf(buf, bufsize, format, ap); // on WIN32, _vsnprint, on Linux, vsnprintf.
谢谢