Quelle est la différence entre les sockets de domaine IPC et Unix et les tubes nommés?
J’ai eu des définitions vagues de divers livres mais je ne pouvais pas savoir exactement lequel devrait être utilisé où.
Pratiquement tous les moyens de communication entre deux processus pourraient être considérés comme une forme de CPI.
Par exemple:
Comme qrdl l’a indiqué, les sockets du domaine UNIX et les canaux nommés sont deux mécanismes IPC.
Parmi ces deux canaux, les canaux nommés sont plus simples à utiliser, mais beaucoup moins flexibles que les sockets de domaine UNIX. Par exemple, si vous attendez potentiellement plus d’un processus de lecture pour chaque processus d’écriture, les sockets du domaine UNIX sont indispensables. si vous vous attendez à ce que le processus de lecture s’arrête et se lance pendant son exécution, vous aurez besoin de sockets de domaine UNIX.
IPC signifie Inter-Process Communications . Les sockets de domaine UNIX et les canaux nommés ne sont que deux mécanismes IPC, décrits dans Wikipedia:
Merci de vous concentrer sur la question, quelques fonctionnalités mises à jour:
Dans les sockets de domaine, la communication réelle (l’échange de données) n’utilise pas le système de fichiers, mais des tampons dans la mémoire du kernel. Par défaut, il s’agit du mode duplex intégral.
Les canaux nommés sont identifiés par leur point d’access, un fichier conservé sur le système de fichiers pour la gestion des données. Un canal nommé par défaut prend en charge les opérations de lecture et d’écriture bloquées. Cependant, il est possible de faire en sorte que les canaux nommés prennent en charge les opérations non bloquantes en spécifiant l’indicateur O_NONBLOCK lors de leur ouverture. Un canal nommé doit être ouvert en lecture seule ou en écriture seule. Il ne doit pas être ouvert en lecture-écriture car il s’agit d’un canal unidirectionnel semi-duplex.