A cross-platform library for opening memory-backed libc streams.
This library was written for Criterion to implement stringification functions for user-defined types.
C doesn't define any way to open "virtual" streams that write to memory rather than a real file. A lot of libc implementations roll their own nonstandard mechanisms to achieve this, namely
fmemopen. Other implementations provide more generic functions to call users functions for various operations on the file, like
fopencookie. Finally, some implementations support none of these nonstandard functions.
fmem tries in sequence the following implementations:
fopencookie, with growing dynamic buffer.
funopen, with growing dynamic buffer.
- WinAPI temporary memory-backed file.
When no other mean is available, fmem falls back to