---
name: "vsnprintf"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/vsnprintf/9"
---

# vsnprintf(9)

Format a string and place it in a buffer

## NAME

vsnprintf - Format a string and place it in a buffer

## SYNOPSIS

**int vsnprintf(char \*** *buf***, size\_t** *size***, const char \*** *fmt***, va\_list** *args***);**

## ARGUMENTS

*buf*

The buffer to place the result into

*size*

The size of the buffer, including the trailing null space

*fmt*

The format string to use

*args*

Arguments for the format string

## DESCRIPTION

This function generally follows C99 vsnprintf, but has some extensions and a few limitations:

**n** is unsupported **p**\* is handled by **pointer**

See **pointer** or Documentation/printk-formats.txt for more extensive description.

\*\* Please update the documentation in both places when making changes \*\*

The return value is the number of characters which would be generated for the given input, excluding the trailing '\\0', as per ISO C99. If you want to have the exact number of characters written into *buf* as return value (not including the trailing '\\0'), use **vscnprintf**. If the return is greater than or equal to *size*, the resulting string is truncated.

If you're not already dealing with a va\_list consider using **snprintf**.

## COPYRIGHT
