O dispositivo especial /dev/stderr
é específico do sistema, enquanto o descritor de arquivo 2
(não o dispositivo especial /proc/self/fd/2
) é portátil. Se você quiser escrever código não portátil, esses dispositivos especiais são um bom lugar para começar.
Existem alguns sistemas com /dev/stderr
: Linux, é claro, e OSX . Mas o OSX não tem /proc
filesystem e seu /dev/stderr
é um link para /dev/fd/2
.
Leitura adicional:
- Portabilidade de “> / dev / stdout ”
- Que método devo usar para escrever mensagens de erro para 'stderr' usando 'printf' em um script bash?
- patches / awk-dev-stderr (autoconf-patches)
- Redirecionar stderr e stdout em um script de Bash
- Capítulo 20. Redirecionamento de I / O (Guia Avançado de Roteiro de Bash)