Anonimowa rura

W informatyce anonimowy potok to prosty kanał komunikacyjny FIFO , który może być używany do jednokierunkowej komunikacji międzyprocesowej (IPC). Implementacja jest często zintegrowana z plików IO systemu operacyjnego . Zwykle program nadrzędny otwiera anonimowe potoki i tworzy nowy proces, który dziedziczy pozostałe końce potoków lub tworzy kilka nowych procesów i układa je w potok .

pełnego dupleksu (dwukierunkowa) zwykle wymaga dwóch anonimowych potoków.

Potoki są obsługiwane w większości popularnych systemów operacyjnych, począwszy od Unixa i DOS , i są tworzone przy użyciu znaku „ | ” w wielu powłokach.

Uniks

Potoki są ważną częścią wielu tradycyjnych aplikacji uniksowych , a ich obsługa jest dobrze zintegrowana z większością systemów operacyjnych typu Unix . Potoki są tworzone za pomocą wywołania systemu potoków , które tworzy nowy potok i zwraca parę deskryptorów plików odnoszących się do końca potoku do odczytu i zapisu. Wiele tradycyjnych programów uniksowych zaprojektowano jako filtry do pracy z potokami.

Microsoft Windows

Podobnie jak wiele innych obiektów IO i IPC urządzeń w Windows API , potoki anonimowe są tworzone i konfigurowane za pomocą funkcji API, które są specyficzne dla obiektu IO. W tym przypadku CreatePipe służy do tworzenia anonimowego potoku z oddzielnymi uchwytami dla końców potoku do odczytu i zapisu. Operacje odczytu i zapisu operacji we/wy na potoku są wykonywane przy użyciu standardowych funkcji API obiektu we/wy ReadFile i WriteFile .

W systemie Microsoft Windows odczyty i zapisy w anonimowych potokach są zawsze blokowane. Innymi słowy, odczyt z pustego potoku spowoduje, że wywołujący wątek będzie czekał, aż przynajmniej jeden bajt stanie się dostępny lub koniec pliku w wyniku zamknięcia uchwytu zapisu potoku. Podobnie zapis do pełnego potoku spowoduje, że wywołujący wątek będzie czekał, aż zwolni się miejsce do przechowywania zapisywanych danych. Odczyty mogą zostać zwrócone z mniejszą liczbą bajtów niż żądana (nazywana również krótkim odczytem ).

Nowe procesy mogą dziedziczyć uchwyty do anonimowych potoków w procesie tworzenia.

Zobacz też

  •   Hart, Johnson M. Programowanie systemu Windows, wydanie trzecie. Addison-Wesley, 2005. ISBN 0-321-25619-0
  • "pipe(7) - strona podręcznika systemu Linux" . Zarchiwizowane od oryginału w dniu 23 marca 2010 r . . Źródło 2010-02-27 .

Notatki