sprintf()
Print formatted output into a string
Synopsis:
#include <stdio.h> int sprintf( char* buf, const char* format, ... );
Arguments:
- buf
- A pointer to the buffer where you want to function to store the formatted string.
- format
- A string that specifies the format of the output. The formatting string determines what additional arguments you need to provide. For more information, see printf().
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
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.
Returns:
The number of characters written into the array, not counting the terminating null character. An error can occur while converting a value for output. When an error occurs, errno indicates the type of error detected.
Examples:
#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;
}
Classification:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | Read the Caveats |
| Thread | Yes |
Caveats:
It's safe to call this function in a signal handler if the data isn't floating point.