[C con Clase] execv y consola

Programante programante en gmail.com
Jue Ago 7 01:04:52 CEST 2008


Stereo System escribió:
> Hola a todos...
>
> He aprendido mucho sobre procesos, gracias a vosotros...
>
> Sin embargo sigo teniendo algunas dudas... 
>
> Tengo un proceso hijo que ejecuta execv y nesecito que lo ejecute pero no pinte nada por pantalla...
>
> EL code es : 
>
> execv("/bin/ls", argv);
>
> nesecito que lo ejecute pero no escriba nada en pantalla de tal forma que la pantalla quede "limpia"...

if (!fork()) {
 int fd = open("/dev/null", O_RDONLY);
 dup2(fd, 1); //Que no escriba nada por stdout
 dup2(fd, 2); //Que no escriba nada por stderr
 close (fd);

 execv("/bin/ls", argv);
 exit(-1);
}



Otra opción es no abrir /dev/null sino simplemente cerrar los 
descriptores y que se las arregle el hijo. Pero si el nuevo programa 
abriera un archivo para escritura, podría escribirse ahí lo que en 
teoría tenía que salir por pantalla.





Más información sobre la lista de distribución Cconclase