Me gustaría tener algo como bash's 2>&1
redirigir en Haskell que combina stdout
y stderr
desde un proceso en un solo Handle
. Sería bueno hacerlo directamente con System.Process.createProcess
o una función de biblioteca similar, particularmente si usa la misma semántica que la redirección bash w.r.t. entrelazado de entrada de los controladores.¿Cómo puedo combinar Handles en Haskell?
La flexibilidad ofrecida por createProcess
parece prometedor en un primer momento: se puede especificar un Handle
a utilizar para los descriptores de fichero estándar, por lo que la misma Handle
podría darse tanto para stdout
y stderr
. Sin embargo, los argumentos Handle
ya deben existir antes de la llamada. Sin la capacidad de crear un Handle
desde el aire antes de llamar a la función, no estoy seguro de que el problema se pueda resolver de esta manera.
Editar: La solución debe funcionar independientemente de la plataforma.
¿Es necesario un enfoque multiplataforma? ¿O solo se ejecutará en un sistema unix-y? –
@camccann Sí; actualizado la pregunta en consecuencia. – acfoltzer
Bueno, [aquí está la respuesta que habría conseguido] (http://hackage.haskell.org/packages/archive/unix/2.4.2.0/doc/html/System-Posix-IO.html) en caso contrario. Técnicamente esto funciona si tienes una capa de compatibilidad como cygwin, pero eso es ... eugh. –