Uživatelské nástroje

Nástroje pro tento web


inter-process-comm

Toto je starší verze dokumentu!


Mezi-procesová komunikace

  • sdílená paměť
  • nepojmenovaná roura (pipe)
  • pojmenovaná roura
  • unix soket
  • POSIX_Message_Queues
  • DBus

Nepojmenovaná roura

  • jednosměrná
  • dva konce - producent a konzument
  • do roury by měl zapisovat nebo z ní číst pouze jeden proces
    • čtení je destruktivní (přečtení jedním procesem zruší možnost čtení procesem druhým)
    • zápis/čtení do velikosti 'PIPE_BUF' by mělo být atomické (pokud do roury budou zapisovat dva procesy, tak zápisy do uvedené velikosti by se neměli pomíchat dohromady)
  • roura se vytváří příkazem pipe
    • parametrem je int[2], kde index 0 je deskriptor pro zápis a index 1 pro čtení
  • rouru je potřeba na konci uzavřít příkazem close
  • zapisovat lze příkazem write, číst příkazem read
#include <unistd.h>
 
int pipefd[2];
 
pipe(pipefd);
..
close(pipefd[0]);
close(pipefd[1]);
inter-process-comm.1450202924.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki