[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