snprintf implementations

Overview

// global functions

int
apr_snprintf(
    char* buf,
    apr_size_t len,
    const char* format,
    ...
);

int
apr_vsnprintf(
    char* buf,
    apr_size_t len,
    const char* format,
    va_list ap
);

Detailed Documentation

Warning

These are snprintf implementations based on apr_vformatter().

Note that various standards and implementations disagree on the return value of snprintf, and side-effects due to n in the formatting string. apr_snprintf (and apr_vsnprintf) behaves as follows:

Process the format string until the entire string is exhausted, or the buffer fills. If the buffer fills then stop processing immediately (so no further n arguments are processed), and return the buffer length. In all cases the buffer is NUL terminated. It will return the number of characters inserted into the buffer, not including the terminating NUL. As a special case, if len is 0, apr_snprintf will return the number of characters that would have been inserted if the buffer had been infinite (in this case, *buffer can be NULL)

In no event does apr_snprintf return a negative number.

Global Functions

int
apr_snprintf(
    char* buf,
    apr_size_t len,
    const char* format,
    ...
)

snprintf routine based on apr_vformatter. This means it understands the same extensions.

Parameters:

buf

The buffer to write to

len

The size of the buffer

format

The format string

The arguments to use to fill out the format string.

int
apr_vsnprintf(
    char* buf,
    apr_size_t len,
    const char* format,
    va_list ap
)

vsnprintf routine based on apr_vformatter. This means it understands the same extensions.

Parameters:

buf

The buffer to write to

len

The size of the buffer

format

The format string

ap

The arguments to use to fill out the format string.