SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: tuflotas en Martes 29 de Diciembre de 2009, 12:22

Título: error de stat en un programa creando un proceso
Publicado por: tuflotas en Martes 29 de Diciembre de 2009, 12:22
Hola,

El programa que he hecho consiste en que se ejecute varios comandos como haria en la shell ls | sort ... pero sin poner |, es decir, sería ./prueba ls sort y asi tendría que ejecutarse.

Lo que he hecho ha sido crear un programa con un bucle hasta el numero de argumentos que metas - 1. Con esto voy mirando si eres el primer comando a ejecutar necesitas crear una tuberia y escribir en ella, luego los comandos intermedios necesitaran leer de la tuberia anterior y escribir en una nueva y el ultimo argumento necesitara leer de la anterior tuberia y escribir en la salida estandar.

Una vez creada la tuberia que necesite cada argumento hago pid = fork(); si pid == 0 entonces eres el hijo y hago que se ejecute el comando que viene en argc (i es el numero de iteracion en el que estoy) y si eres padre pongo waitpid(-1,status.0);

Bueno, el problema es que a partir de la segunda iteracion, mirando con el gbd he visto que tras pid=fork(); me sale el error "sort: fallo en `stat': -: Descriptor de archivo inválido" y ya no ejecuta nada más , alguien sabe que pued eestar haciendo??
Título: Re: error de stat en un programa creando un proceso
Publicado por: tuflotas en Martes 29 de Diciembre de 2009, 16:37
el problema ahora es distinto, ahora me da un error de segmentacion creo que por el mal uso de las pipes