win_snprintf.c 672 B

12345678910111213141516171819202122232425262728293031
  1. #include <stdio.h>
  2. #include <stdarg.h>
  3. int
  4. pcap_vsnprintf(char *str, size_t str_size, const char *format, va_list args)
  5. {
  6. int ret;
  7. ret = _vsnprintf_s(str, str_size, _TRUNCATE, format, args);
  8. /*
  9. * XXX - _vsnprintf() and _snprintf() do *not* guarantee
  10. * that str is null-terminated, but C99's vsnprintf()
  11. * and snprintf() do, and we want to offer C99 behavior,
  12. * so forcibly null-terminate the string.
  13. */
  14. str[str_size - 1] = '\0';
  15. return (ret);
  16. }
  17. int
  18. pcap_snprintf(char *str, size_t str_size, const char *format, ...)
  19. {
  20. va_list args;
  21. int ret;
  22. va_start(args, format);
  23. ret = pcap_vsnprintf(str, str_size, format, args);
  24. va_end(args);
  25. return (ret);
  26. }