std1.0.0-beta-7 SafeC docs

Module stderr_compat

#include <std/stderr_compat.h> source

internal stderr-handle compatibility shim.

Not part of the public std:: API — included only by the handful of std/ files that need to print a fatal diagnostic before abort()ing (mem.sc, io.sc, assert.sc, crypto/rng.sc, alloc/{pool,slab,tlsf}.sc) and have no other reason to pull in the full <std/io.h>.

There is no single libc symbol for "the stderr FILE*" across platforms:

- macOS/BSD:  'stderr' is a macro expanding to '__stderrp', an actual
              exported global of that name.
- glibc:      'stderr' is a plain exported global itself — no '__stderrp'.
- MSVC/UCRT:  no exported 'stderr' symbol at all; the macro expands to
              a call, '__acrt_iob_func(2)' (index 2 = stderr in the
              standard fd 0/1/2 ordering), whose result is not a fixed
              address and can't be taken as a plain extern global.

SAFEC_STDERR_ hides that split behind one token, usable everywhere the old direct '_stderrp' reference was (a 'CFile*'), on whichever of APPLE / linux / _WIN32 'safec' auto-defined for this host/target (see main.cpp's platform-detection block).

Globals

stderrglibc and most other hosted libcs: a plain exported 'stderr' global.