• Domingo 15 de Diciembre de 2024, 18:50

Autor Tema:  error de stat en un programa creando un proceso  (Leído 1234 veces)

tuflotas

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
error de stat en un programa creando un proceso
« en: Martes 29 de Diciembre de 2009, 12:22 »
0
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??

tuflotas

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: error de stat en un programa creando un proceso
« Respuesta #1 en: Martes 29 de Diciembre de 2009, 16:37 »
0
el problema ahora es distinto, ahora me da un error de segmentacion creo que por el mal uso de las pipes