Dynamic memory extensions

Extensions to the C Library Part II: Dynamic Allocation Functions, ISO/IEC TR 24731-2:2010, defines the following new components for the C standard library:

__STDC_ALLOC_LIB__
integer constant of type long indicating conformance level
(macro constant)
Defined in header <stdio.h>
(dynamic memory TR)
opens a fixed-size memory buffer as an I/O stream
(function)
opens a dynamically resized memory buffer as an I/O stream
(function)
variants of sprintf etc that write to automatically-allocated buffer and return a pointer to it
(function)
read from a stream into a automatically resized buffer until delimiter/end of line
(function)
Defined in header <string.h>
(dynamic memory TR)
allocate a copy of a string
(function)
(dynamic memory TR)
allocate a copy of a string up to specified size
(function)

This library extension also introduces assignment-allocation character m for use with %s, %[, and %c conversion specifiers in fscanf and fwscanf family of functions.

Notes

The functions fmemopen, open_memstream, open_wmemstream, getdelim, getline, strdup, strndup, and the extensions to fscanf are available in POSIX (ISO/IEC 9945:2003).

The functions asprintf and vasprintf are available in Linux Standard Base (ISO/IEC IS 23360:2006)