2017-10-02 14 views
0

Je suis novice en ce qui concerne les commandes système Linux et les sujets liés à l'IPC.Fourches et communication parent-enfant

J'ai un enfant qui calcule la factorielle d'un nombre donné, puis transmet le résultat au parent. Le parent imprimera alors la sortie reçue.

Je dois faire SANS utilisant tout type de TUYAUX. À ce stade, j'ai fait une petite recherche sur les différents types d'IPC. Les deux voies que je considérais étaient File Mapping et Mail Slot. Cependant, vu la simplicité de la tâche, ils semblent tous trop compliqués.

Quels sont les moyens simples que j'ai pu résoudre ce problème?

+0

La manière simple de résoudre ce problème est avec un tuyau. S'il existe une contrainte artificielle contre l'utilisation de la solution standard, supprimez la contrainte. Si vous voulez vraiment le faire sans utiliser de pipe, regardez la mémoire partagée et/ou une socket. –

+0

Ceci est pour une classe, les exigences de classe stipulent de ne pas utiliser de pipe pour cette assignation. Merci pour le conseil, va se pencher sur ça! – GreenFerret95

+0

La réponse habituelle à des questions comme celle-ci est «tout ce qui vous a été enseigné en classe», mais nous ne savons pas ce qu'on vous a enseigné en classe. Si cela ne tenait qu'à moi et si je voulais m'amuser, j'utiliserais des sémaphores, un pour chaque partie possible de la réponse. –

Répondre

0

Si votre programme est en train de forker les enfants, créez un emplacement partagé dans le parent, puis demandez à l'enfant de renseigner le résultat dans cet espace, car toute la mémoire est accessible au parent et à l'enfant au fork() .