rcutils  master
C API providing common utilities and data structures.
Functions
snprintf.h File Reference
#include <stdarg.h>
#include <stddef.h>
#include "rcutils/macros.h"
#include "rcutils/visibility_control.h"
Include dependency graph for snprintf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int rcutils_snprintf (char *buffer, size_t buffer_size, const char *format,...) RCUTILS_ATTRIBUTE_PRINTF_FORMAT(3
 Format a string. More...
 
int int rcutils_vsnprintf (char *buffer, size_t buffer_size, const char *format, va_list args)
 Format a string with va_list for arguments, see rcutils_snprintf(). More...
 

Function Documentation

◆ rcutils_snprintf()

int rcutils_snprintf ( char *  buffer,
size_t  buffer_size,
const char *  format,
  ... 
)

Format a string.

This function just wraps snprintf() as defined in C11 in a portable way.

On Windows this defaults to the _TRUNCATE behavior of _snprintf_s(), but only returns -1 if errno is not 0. Unlike _snprintf_s() which returns -1 when truncation occurs, this function behaves like snprintf() (http://en.cppreference.com/w/cpp/io/c/fprintf):

Number of characters written if successful or negative value if an error occurred. If the resulting string gets truncated due to buf_size limit, function returns the total number of characters (not including the terminating null-byte) which would have been written, if the limit was not imposed.

If NULL and 0 are given for buffer and buffer_size respectively, the size of the string that would be generated is returned. Either snprintf() or _vscprintf() is used to calculate this value.

See also
snprintf()
_snprintf_s()
Returns
the number of bytes that would have been written given enough space, or a negative number if there is an error, but unlike _snprintf_s(), -1 is not returned if there is truncation.

◆ rcutils_vsnprintf()

int int rcutils_vsnprintf ( char *  buffer,
size_t  buffer_size,
const char *  format,
va_list  args 
)

Format a string with va_list for arguments, see rcutils_snprintf().