Communication entre processus

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je souhaiterais mettre en place un système de communications entre plusieurs processus sous Linux.

Dans ce système, il y aurait plusieurs processus d'écriture et un seul processus d'écoute.

Un seul processus qui écoute en permanence et plusieurs processus qui écrivent de manière ponctuelle.

Comme durant la communication, certains processus sont amenés à naître et mourir, je vois mal comment je pourrai mettre en place une mémoire partagée.

Ma première idée fût d'utiliser les fichiers de type caractère (comme dans /dev). Mais j'ai cru comprendre qu'ils servaient surtout pour le sens contraire (un processus qui écrit plusieurs qui écoutent).

Puis j'ai vu qu'il existait des pipes. Mais à chaque recherche, je retombe sur les FIFO qui me semble être les fichiers caractères.

Au pire si je ne trouve pas de solution, demain je me sur les sockets.

Selon vous, quelle solution devrais-je mettre en place (et pourquoi ?).

J'avoue être un perdu sur ce que peux faire chacun.

+0 -0

Comme durant la communication, certains processus sont amenés à naître et mourir, je vois mal comment je pourrai mettre en place une mémoire partagée.

le mot clef dans ces cas là est d'utiliser une file de multiprocessing/de message. Comme je ne m'y connait pas trop en C, j'ai fait une petite recherche et j'ai trouvé ce topic qui semble répondre à ta question même si j'ai quelques doutes.

Arff, c'est toujours plus simple quand on a les bons mots-clés !

Merci, j'ai cherché avec "File de message" Je suis tombé sur des implémentations en C.

J'aimerais que la lecteur soit non bloquante, normalement avec IPC_NOWAIT je devrais pouvoir le faire.

Merci beaucoup. ^^

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte