⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vsnprintf.c

📁 穿越防火墙技术代码
💻 C
字号:
/*port/vsnprintf.cCopyright (C) 1999 Lars Brinkhoff.  See COPYING for terms and conditions.*/#include "config.h"#include <stdio_.h>#include <stdarg.h>#include <stdlib.h>#include <sys/types.h>#ifndef HAVE_VPRINTF#error "Must have vfprintf() and vsprintf()."#endifintvsmprintf (char **s, const char *format, va_list ap){  size_t n;  FILE *f;  f = fopen ("/dev/null", "w");  if (f == NULL)    return -1;  n = vfprintf (f, format, ap);  fclose (f);  *s = malloc (n + 1);  if (*s == NULL)    return -1;  return vsprintf (*s, format, ap);}#ifndef HAVE_VSNPRINTFintvsnprintf (char *str, size_t n, const char *format, va_list ap){  char *s;  int m, r;  m = vsmprintf (&s, format, ap);  if (m == -1)    return 0;  if (m + 1 > n)    {      m = n - 1;      r = -1;    }  else    {      r = m;    }  memcpy (str, s, m);  free (s);  str[m] = 0;  return r;}intsnprintf (char *s, size_t n, const char *format, ...){  va_list ap;  int m;  va_start (ap, format);  m = vsnprintf (s, n, format, ap);  va_end (ap);  return m;}#endif /* HAVE_VSNPRINTF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -