Fourche parent-enfant de la communication
J'ai besoin d'une certaine façon pour que le processus parent de communiquer avec chaque enfant individuellement.
J'ai des enfants qui ont besoin de communiquer avec le parent à l'écart des autres enfants.
Est-il possible pour un parent d'avoir un canal de communication privé avec chaque enfant?
Aussi un enfant peut, par exemple, d'envoyer à la société mère une structure variable?
Je suis nouveau sur ce genre de choses de sorte que toute aide est très appréciée. Merci
- les pipelines ! gnu.org/software/libc/manual/html_node/Pipes-and-FIFOs.html ( n'oubliez pas que vous devez créer le tuyau avant de bifurquer, ou bien ils ne peuvent pas communiquer )
- C'est dépend de la plateforme. Quelle plate-forme avez-vous l'intention de courir?
- Je suis en retard à la fête, mais ici est une bonne ressource pour démarrer avec l'IPC dans un typique parent-enfant paradigme à l'aide de tuyaux - SystemProgramming/Introduction-aux-tuyaux
Vous devez vous connecter pour publier un commentaire.
(Je vais partir du principe que nous parlons de linux ici)
Comme vous l'avez probablement constaté,
fork()
lui-même va juste dupliquer le processus appelant, il ne gère pas les CIB.La façon la plus commune pour gérer l'IPC une fois que vous fourchue() est d'utiliser des tuyaux, surtout si vous voulez "privé de comunication chanel avec chaque enfant". Voici un typique exemple facile d'utilisation, semblable à celui que vous pouvez trouver dans le
pipe
manuel (valeurs de retour ne sont pas vérifiées):Le code est assez explicite:
À partir de là, vous pouvez faire ce que vous voulez; n'oubliez pas de vérifier vos valeurs de retour et de lire
dup
,pipe
,fork
,wait
... manuels, ils vous seront utiles.Il y a aussi un tas d'autres façons de partager les données entre les processus, ils mlgh vous intéresser, même s'ils ne répondent pas à vos "privé" exigence:
ou même un simple fichier... (je l'ai même utilisé SIGUSR1/2 les signaux pour envoyer des données binaires entre les processus une fois... Mais je ne recommande pas que haha.)
Et probablement un peu plus que je n'y pense pas sur le moment présent.
Bonne chance.
fork()
retourne -1.pipe()
deux fois. Probablement nécessaire si l'utilisateur souhaite plein de la CIB.