Мне нужна функция count_sprintf (), которая должна возвращать
количество символов (не включая ноль байт), необходимое для форматированного буфера, в Win32 и в Linux.
int count_sprintf(const char *format, va_list ap);
Существуют тонкие различия между двумяWin32 против Linux в возвращаемом значении vsnprintf, когда форматированное значение длиннее размера буфера.Вот почему я прошу о помощи.
Можете ли вы дать переносимый код (#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.
Спасибо