En la Programación de red UNIX de Stevens, menciona la redirección de stdin, stdout y stderr, que se necesita al configurar un daemon. Lo hace con el siguiente código CRedireccionando STDIN, STDOUT, STDERR a/dev/null en C
/* redirect stdin, stdout, and stderr to /dev/null */
open("/dev/null", O_RDONLY);
open("/dev/null", O_RDWR);
open("/dev/null", O_RDWR);
estoy confundido cómo estos tres 'saben' que vamos a redirigir los tres std *. Especialmente dado que los dos últimos comandos son iguales. ¿Podría alguien explicarme o señalarme en la dirección correcta?
Tch. Es peligroso hacerlo de esta manera. Siempre use 'dup2()'. –
No es peligroso si su proceso es de subproceso único y ya ha cerrado el viejo stdin/out/err. –
Esta respuesta podría ayudar de alguna manera a ayudar: http://stackoverflow.com/a/4973065/207753 – SlappyTheFish