📄 sfprints.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -