sfprints.c

来自「su 的源代码库」· C语言 代码 · 共 48 行

C
48
字号
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include	"sfhdr.h"/*	Construct a string with the given format and data.**	This function allocates space as necessary to store the string.**	This avoids overflow problems typical with sprintf() in stdio.****	Written by Kiem-Phong Vo.*/#if __STD_Cchar* sfprints(const char* form, ...)#elsechar* sfprints(va_alist)va_dcl#endif{	va_list		args;	reg int		rv;	static Sfio_t*	f;#if __STD_C	va_start(args,form);#else	reg char	*form;	va_start(args);	form = va_arg(args,char*);#endif	/* make a fake stream */	if(!f &&	   !(f = sfnew(NIL(Sfio_t*),NIL(char*),(size_t)SF_UNBOUND,			-1,SF_WRITE|SF_STRING)) )		return NIL(char*);	sfseek(f,(Sfoff_t)0,0);	rv = sfvprintf(f,form,args);	va_end(args);	if(rv < 0 || sfputc(f,'\0') < 0)		return NIL(char*);	_Sfi = (f->next - f->data) - 1;	return (char*)f->data;}

⌨️ 快捷键说明

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