Print formatted output into a string
#include <stdio.h> int sprintf( char* buf, const char* format, ... );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The sprintf() function is similar to fprintf(), except that sprintf() places the generated output into the character array pointed to by buf, instead of writing it to a file. A null character is placed at the end of the generated character string.
The number of characters written into the array, not counting the terminating null character, or a negative value if an error occurred (errno is set). An error can occur while converting a value for output.
#include <stdio.h> #include <stdlib.h> /* Create temporary file names using a counter */ char namebuf[13]; int TempCount = 0; char* make_temp_name() { sprintf( namebuf, "ZZ%.6o.TMP", TempCount++ ); return( namebuf ); } int main( void ) { FILE* tf1,* tf2; tf1 = fopen( make_temp_name(), "w" ); tf2 = fopen( make_temp_name(), "w" ); fputs( "temp file 1", tf1 ); fputs( "temp file 2", tf2 ); fclose( tf1 ); fclose( tf2 ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Read the Caveats |
Thread | Yes |
It's safe to call this function in a signal handler if the data isn't floating point.