Página 1 de 1

Diferencia entre StderrRead y StdoutRead

Publicado: 28 May 2011, 02:55
por TLOTS
Hola!, queria preguntar, si me podrian explicar la diferencia entre StderrRead y StdoutRead...
Lo que pasa es que estoy haciendo automatico un programa que se ejecuta por linea de comandos, entones, necesito que algunas informaciones Autoit me las muestre para yo poder decidir que hacer a continuacion...
Basandome en los ejemplos, ya he conseguido algo, pero queria preguntar bien la diferencia entre estos 2 para poder estar seguro de lo que hago ^^

Re: Diferencia entre StderrRead y StdoutRead

Publicado: 30 May 2011, 09:55
por Ximorro
StdOut es la salida estándar normal, ahí mandan los mensajes normalmente.
StdErr es la salida de estándar de error, es decir, es como StdOut pero específica para mensajes de error.
Naturalmente esa es la "intención de uso", para lo que se han creado, pero luego los programas lo usan como quieren, por ejemplo no es raro encontrarse con programas que escriben los mensajes de error por la StdOut.

Por ejemplo en una ventana DOS puedes escribir
dir carpeta > lista.txt

Y te capturará la salida estándar y la meterá en lista.txt. Eso es stdout

Pero si "carpeta" no existe verás que manda la cabecera a lista.txt, pero sale por consola el mensaje "No se encuentra el archivo". Eso es porque eso lo manda por stderr y sólo estamos capturando stdout.
Para capturar stderr en un shell DOS redireccionamos con 2>
dir carpeta 2> lista.txt

Puedes capturar los dos a la vez:
dir carpe > lista.txt 2> error.txt

Esos ejemplos o similares los puedes emular en AutoIt para hacer pruebas.