Win32およびLinuxで、フォーマットされたバッファに必要な文字数(nulバイトを含まない)を返す関数count_sprintf()が必要です。
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.
ありがとう