Ejercicio fork y signals

Se tiene guardado en un directorio una serie de archivos autonumerados como:

MENSAJE1.txt

MENSAJE2.txt

Cada uno de estos archivos contiene tres campos como los siguientes, ordenados de cualquier manera:

MSJ=“mensaje de prueba”

REPETICIONES=4

TIEMPO=2.21

El programa principal debe crear un proceso hijo por cada uno de los archivos MENSAJEx.txt.Al iniciar cada proceso hijo, debe imprimir su PID en pantalla. Luego, el hijo numero x debe leer el archivo MENSAJEx.txt para imprimir el mensaje del campo MSJ la cantidad de veces especificada en el campo REPETICIONES(int), esperando entre cada mensaje un tiempo especificado en segundos en el campo TIEMPO (float). Una vez que termino de imprimir, el hijo finaliza. Los procesos hijos solo deben finalizar si terminaron su proceso, no pueden ser detenidos con un Ctrl+C.

El proceso padre debe manejar a los procesos hijos de manera que no queden en estados zombies. Cada vez que un hijo se cierre, el proceso padre debe informar el pid del proceso hijo que acaba de cerrarse y cuantos hijos aún quedan abiertos. Una vez que todos los hijos finalicen, el proceso padre finalizará.