Can the values of `stdin`, `stdout`, and `stderr` be assumed to be constant?

Viewed 1671

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, \"");
1 Answers
Related