SkillAgentSearch skills...

Fmem

A cross-platform library for opening memory-backed libc streams.

Install / Use

/learn @Snaipe/Fmem
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

fmem

Unix Build Status Windows Build Status

A cross-platform library for opening memory-backed libc streams.

This library was written for Criterion to implement stringification functions for user-defined types.

Rationale

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 open_memstream, or fmemopen. Other implementations provide more generic functions to call users functions for various operations on the file, like funopen or fopencookie. Finally, some implementations support none of these nonstandard functions.

fmem tries in sequence the following implementations:

  • open_memstream.
  • 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 tmpfile().

Related Skills

View on GitHub
GitHub Stars82
CategoryDevelopment
Updated9d ago
Forks27

Languages

C

Security Score

95/100

Audited on Mar 25, 2026

No findings