c - Estado de salida de un programa que se ejecuta en segundo plano

Tengo una tarea en la que tengo que crear un mini shell que es capaz de hacer muchas cosas, incluido el control del trabajo. Logré crear nuevos trabajos usando fork y execvp. Pero también quiero obtener los códigos de salida de los programas ejecutados por execvp. Por lo que he buscado en otras publicaciones, puedo hacer esto usandoif(WIFEXITED(status)).

Pero también se requiere que ejecutemos el proceso en segundo plano si el usuario ingresa '&' con el nombre del proceso en el shell. Por lo tanto, no tiene sentido esperar a que el proceso principal espere mientras el programa secundario finaliza en segundo plano. ¿Hay alguna interrupción que pueda configurar que notifique al proceso principal que el proceso secundario ha finalizado? Entonces puedo usar elif(WIFEXITED(status)) Declaración para obtener el código de salida.

Ejemplo

sleep 100 &

se ejecutará en segundo plano mientras puedo ejecutar otros comandos de shell en primer plano simultáneamente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta