J'écris un programme C dans lequel le parent forge n les processus enfants. Un processus enfant une fois créé appelle un SIGSTOP pour permettre la création d'autres processus enfants. Le parent après avoir créé tous les processus enfant n envoie un signal SIGCONT à tous les enfants.Terminer parent et le processus enfant sur Ctrl-C
Tous les processus enfants exécutent une boucle infinie et partagent une ressource commune à l'aide de sémaphores. Maintenant, je veux que chaque fois que l'utilisateur appuie sur ctrl-c, le parent et tous les processus enfants se terminent ensemble. Cependant, avant de terminer le processus fils, il faut mettre à jour dans un fichier combien de fois chacun a utilisé la ressource.
par exemple:
Process 1 - 5 times
Process 2 - 3 times
et ainsi de suite.
Besoin d'aide dans cette mise en œuvre ... s'il vous plaît
Qu'avez-vous? Avec quelles parties avez-vous besoin d'aide? Vous aurez besoin d'un gestionnaire de signal pour SIGINT (mais probablement pas pour SIGCONT).Vous devriez donc regarder 'sigaction()'. Je suppose que vous avez déjà le code du sémaphore? –
Dupliquer? http://stackoverflow.com/questions/284325/how-to-make-child-process-die-after-parent-exits contient une bonne réponse. – ugoren
@JonathanLeffler La partie sémaphore fonctionne très bien pour moi. Ce que je suis coincé est dans la partie où, en appuyant sur ctrl-c pour quitter les processus fils devraient d'abord mettre à jour dans un fichier combien de fois chacun a utilisé la ressource. par la suite, l'enfant et le parent se terminent l'un après l'autre. – ritz