Gestion de Procesos en Unix

No se si este es el foro adecuado, pero viendo k trabajo con GCC y Linux, supongo que si.

Hola ante todo, estoy haciendo una practica de Sistemas Operativos que debo entregar mañana. El caso que tengo que hacer una aplicacion en C que usando "fork", "exec" etc....vaya ejecutando aplicaciones (pequeñas, tales como calcular un primo...un determinante de una matriz etc...).

La dificultad llega cuando se me exige que como mucho puedan lanzarse "X" aplicaciones simultaneas (X es una cifra que hay k introducirsela al programa por argumentos).

Está claro que no se como hacerlo, por eso os pido ayuda, me han comentado que hay k hacerlo usando "waitpid" y la opcion "WNOHANG". Pero estoy completamente perdido.

He probado ha crear un array de "X" elementos, e ir introduciendo ahi las PID de los procesos que se van ejecutando, a la vez que un proceso hijo se ejecuta, el proceso padre mete el PID del hijo en ese array, pero ahora....no se como hacer (usando el waitpid con wnohang) el saber cuando un proceso hijo ha finalido, para poder eliminar su entrada en el array.

No se si me he explicado muy bien, y os estaria muy agradecido que me ayudarais, pq el profesor me ha dixo textualmente que me busque la informacion por otro lado, y no encuentro ninguna web con algun ejemplo.

Muchas Gracias. [oki]
Yo empezaría por wait(2)

Saludos.Ferdy
Ferdy escribió:Yo empezaría por wait(2)

Saludos.Ferdy


y eso pa k sirve? [oki]
Si es que hay que decirloslo todo... x'D
man 2 wait

;D
3 respuestas