Parece que eles são padronizados na especificação POSIX,
-
POSIX.1-2017 por procuração de unistd.h
The header shall define the following symbolic constants for file streams:
-
STDERR_FILENO
File number of stderr; 2. -
STDIN_FILENO
File number of stdin; 0. -
STDOUT_FILENO
File number of stdout; 1.
-
-
Mas também os documentos POSIX sobre "
stderr
,stdin
,stdout
- padrão I / O streams " state,This volume of POSIX.1-2017 defers to the ISO C standard.
-
O padrão ISO ISO / IEC 9899: 201x somente ,
The three predefined streams stdin, stdout, and stderr are unoriented at program startup.
Parece que o ISO C é relativamente silencioso, permitindo que o kernel atribua o que quiser aos descritores conhecidos como STDOUT
, STDERR
e STDIN
. Mas que os documentos POSIX em unistd.h
são explícitos sobre o que eles devem resolver nesse nível.