---
name: "uvszprintf"
section: "3alleg"
platform: "linux"
package: "liballegro-doc"
version: "2:4.2.2-2.2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/uvszprintf"
---

# uvszprintf(3alleg)

Writes formatted data into a buffer, using size and variable arguments. Allegro game programming library.

## NAME

uvszprintf - Writes formatted data into a buffer, using size and variable arguments. Allegro game programming library.

## SYNOPSIS

**#include \<allegro.h\>**

**int uvszprintf(char \*buf, int size, const char \*format, va\_list args);**

## DESCRIPTION

This is like uszprintf(), but you pass the variable argument list directly, instead of the arguments themselves. Example:

```
   #include <stdarg.h>
   void log_message(const char *format, ...)
   {
      char buffer[100];
      va_list parameters;
      va_start(parameters, format);
      uvszprintf(buffer, sizeof(buffer), format, parameters);
      va_end(parameters);
      append_buffer_to_logfile(log_name, buffer);
      send_buffer_to_other_networked_players(multicast_ip, buffer);
      and_also_print_it_on_the_screen(cool_font, buffer);
   }
   void some_other_function(void)
   {
      log_message("Hello %s, are you %d years old?\n", "Dave", 25);
   }
```

## RETURN VALUE

Returns the number of characters that would have been written without eventual truncation (like with uvsprintf), not including the terminating null character.

## SEE ALSO

[**uconvert**(3alleg)](/uconvert/3alleg.md), [**uszprintf**(3alleg)](/uszprintf/3alleg.md), [**uvsprintf**(3alleg)](/uvsprintf/3alleg.md)
