vsnprintf.c

来自「很好用的」· C语言 代码 · 共 62 行

C
62
字号
#include <stdarg.h>/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */struct charbuf_struct{	char 	*buf,		*ptr;	int	len;};/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */static int copytobuf(void *cfarg, char *str, int len){	struct 	charbuf_struct 		*cbuf;	int	n;	cbuf = (struct charbuf_struct *)cfarg;	n = 0;	while (len--)	{		if (cbuf->len == -1)		{			*cbuf->ptr++ = *str++;			n++;		}		else		if (cbuf->len == 0)		{			*cbuf->ptr = '\0';		}		else		{	cbuf->len--;			*cbuf->ptr++ = *str++;			n++;		}	}	return n;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int libport_vsnprintf(char *buf, int len, char *fmt, va_list args){	struct charbuf_struct cbuf;	cbuf.buf = buf;	cbuf.ptr = buf;	cbuf.len = len;	return format(copytobuf, &cbuf, len, fmt, args);} 

⌨️ 快捷键说明

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