From Ubuntu man page stdin(3):
extern FILE *stdout;
From mingw64 stdio.h file:
#define stdout (&__iob_func()[1])
Both suggest that the value of stdout (a pointer) can not be assumed to be constant.
Can I still rely on something like this to work:
FILE * stream;
// early after startup
stream = stdout;
// much later, far down the stack, in a different function
fprintf(stream, "%s", "fprintf(stream, \"");