📄 snprintf.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 + -