---
name: "aprintf"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/aprintf"
---

# aprintf(3)

allocate and print formatted string

## NAME

aprintf, vaprintf - allocate and print formatted string

## LIBRARY

gnulib - The GNU Portability Library

## SYNOPSIS

```
#include <stdio.h>
```

**char \*aprintf(const char \*restrict** *fmt***, ...);** **char \*vaprintf(const char \*restrict** *fmt***, va\_list** *ap***);**

## DESCRIPTION

The functions **aprintf**() and **vaprintf**() are analogs of [**sprintf**(3)](/sprintf/3.md) and [**vsprintf**(3)](/vsprintf/3.md), except that their output is written in a space allocated as if by a call to [**malloc**(3)](/malloc/3.md).

This pointer should be passed to [**free**(3)](/free/3.md) to release the allocated storage when it is no longer needed.

## RETURN VALUE

On success, these functions return a pointer to the first character of the formatted string. On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

See [**sprintf**(3)](/sprintf/3.md) and [**malloc**(3)](/malloc/3.md).

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **aprintf**(), **vaprintf**() | Thread safety | MT-Safe locale |

## STANDARDS

None.

## HISTORY

gnulib 202607.

## SEE ALSO

[**free**(3)](/free/3.md), [**malloc**(3)](/malloc/3.md), [**sprintf**(3)](/sprintf/3.md), [**strdup**(3)](/strdup/3.md), [**asprintf**(3)](/asprintf/3.md)
