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

📄 snprintf.c

📁 基于ntp协议的网络时间服务程序
💻 C
字号:
#ifndef HAVE_VPRINTF#include "choke-me: no vprintf and no snprintf"#endif#if defined(HAVE_STDARG_H)#  include <stdarg.h>#  ifndef   VA_START#    define VA_START(a, f)  va_start(a, f)#    define VA_END(a)       va_end(a)#  endif /* VA_START */#  define SNV_USING_STDARG_H#elif defined(HAVE_VARARGS_H)#  include <varargs.h>#  ifndef   VA_START#    define VA_START(a, f) va_start(a)#    define VA_END(a)    va_end(a)#  endif /* VA_START */#  undef  SNV_USING_STDARG_H#else#  include "must-have-stdarg-or-varargs"#endifstatic intsnprintf(char *str, size_t n, char const *fmt, ...){    va_list ap;    int rval;#ifdef VSPRINTF_CHARSTAR    char *rp;    VA_START(ap, fmt);    rp = vsprintf(str, fmt, ap);    VA_END(ap);    rval = strlen(rp);#else    VA_START(ap, fmt);    rval = vsprintf(str, fmt, ap);    VA_END(ap);#endif    if (rval > n) {        fprintf(stderr, "snprintf buffer overrun %d > %d\n", rval, (int)n);        abort();    }    return rval;}static intvsnprintf( char *str, size_t n, char const *fmt, va_list ap ){#ifdef VSPRINTF_CHARSTAR    return (strlen(vsprintf(str, fmt, ap)));#else    return (vsprintf(str, fmt, ap));#endif}

⌨️ 快捷键说明

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