So far, I got the following function:
int my_snprintf(char* str, size_t size, const char* format, ...) { int len = 0; va_list ap; if (size == 0) { return 0; } va_start(ap, format); len = _vsnprintf(str, size, format, ap); va_end(ap); if (len < 0 || len >= size) { len = size - 1; } if (size > 0) { str[size - 1] = '\0'; } return len; }
Preliminary testing looks fine, and it even compiles for WinCE. Any feedback is greatly appreciated
source share