/* * Print to console using printf()-style formatting. * Calls into Format_Output in common library. */ void Print(const char *fmt, ...) { va_list args; bool iflag = Begin_Int_Atomic(); va_start(args, fmt); Format_Output(&s_outputSink, fmt, args); va_end(args); End_Int_Atomic(iflag); }
int snprintf(char *s, size_t size, const char *fmt, ...) { struct String_Output_Sink sink; int rc; va_list args; /* Prepare string output sink */ sink.o.Emit = &String_Emit; sink.o.Finish = &String_Finish; sink.s = s; sink.n = 0; sink.size = size; /* Format the string */ va_start(args, fmt); rc = Format_Output(&sink.o, fmt, args); va_end(args); return rc; }