RE:Funcion de procesos bloqueados
Si es en Windows existe la API GetExitCodeProces(); pero en linux no conosco ninguna parecida.
En cambio, he visto una tecnica que consiste en untilizar semaforos como contadores, de manera que si un proceso se bloquea con un semaforo A, antes efectua un UP de un semaforo B.
Es decir, la primera operacion del proceso es un UP del semaforo contador, luego un DOWN del semaforo real (si corresponde se bloquea) y luego un down del semaforo contador.
Asi, si el proceso se bloqueó, el semaforo contador estará con un valor destinto a su valor inicial, sino, con el mismo valor.
Espero haberte ayudado.
Suerte...