sprintf()

Updated: April 19, 2023

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, or a negative value if an error occurred (errno is set). An error can occur while converting a value for output.

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:

ANSI, POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler Yes
Signal handler Yes
Thread Yes