Si le signal SIGUSR1 est délivré au fils avant l'appel à exit(EXIT_FAILURE) le message J'ai bien recu le signal 16 est affiché par le fils.
Le message Le fils a pour code de retour 1 est affiché par le père.
Pour résoudre le problème, le plus simple est d'utiliser un sémaphore afin de bloquer l'accès à la ressource.