17/12/2012, 03:47
|
| | | Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 5 meses Puntos: 127 | |
Respuesta: cout como pasarlos a un txt ? Si estás en Windows o Linux existe el operando > que designa hacia dónde se dirige el stream de salida (o stdout) del proceso.
proceso.exe > C:\texto.txt
stderr (o la salida de errores) tiene el código 2 y se redirige igual
2>&1
que redirige el flujo sterr (2) hacia el flujo stdout (&1) por lo que queda finalmente
proceso.exe > C:\texto.txt 2>&1
Recuerda que los códigos son 0 para stdin o flujo de entrada 1 para stdout o flujo de salida 2 para stderr o flujo de salida de errores 3 - 9 que son reservados Operadores &
La norma sobre los & indica que se colocan siempre o >& o <& indicando que se escribe:
A >& B -> de la salida de un proceso A a la entrada de B (por defecto para casi todo)
B <& A -> de la entrada de un proceso A a la salida de otro B (como un pipe inverso)
1<&2 // redirige el flujo stderr hacia el flujo stdout (de la entrada de stderr a al salida de stdout), que podría ser perfectamente de la salida de stderr a la entrada de stdout si se intercambian los operadores
2>&1
Si se usan varios operadores se puede razonar un poco más acertadamente lo que hacen los operadores
A > B 1<&2
Que mueve primero de la salida de A a la entrada de B mientras que mueve de la entrada de stderr a la salida de stdout. Por lo que stderr acaba en B. Combinando salida y entrada
Para indicar al mismo tiempo y mediante los operadores > y < la salida y la entrada de un proceso se pueden usar:
proceso.exe < flujo de entrada del proceso > log de salida del proceso
y más tarde se combina con
proceso.exe < flujo de entrada del proceso > log de salida del proceso 2>&1
que además, como expliqué antes, mueve la salida de errores a la entrada de stdout y de la entrada de stdout, y de ahí de nuevo al log de salida (por lo que tanto stdout como stderr acaban en el mismo sitio, en el log). Y para completarlo más aún
proceso.exe < flujo de entrada de proceso > log de salida de proceso 2 > log de salida de errores 3 > log opcional para otros códigos Evitar la sustitución
y para evitar que se borre la información del fichero y que la salida del proceso se escriba al final del fichero sin sobreescribir lo anterior se usa el operador
A >> B
que mueve la salida del proceso A hacia la entrada del fichero B
Un saludo.
__________________ 21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
Última edición por dontexplain; 17/12/2012 a las 04:42 |