Potok (Unix)
Z Wikipedii
| Zasugerowano, aby artykuł Potok (funkcja powłoki) zintegrować z tym artykułem lub sekcją. (dyskusja) |
Potok (ang. pipe) – to jeden z mechanizmów komunikacji międzyprocesowej umożliwiający wymianę danych pomiędzy dwoma procesami. Odbywa się to najczęściej poprzez połączenie standardowego wyjścia jednego procesu ze standardowym wejściem drugiego.
Spis treści |
[edytuj] Potoki procesowe
W uniksowych powłokach systemowych używa się symbolu "|" (pionowej linii), aby połączyć dwa lub więcej procesów w potok.
Przykład wykorzystania potoków w systemie UNIX:
$ ps -a | sort | uniq | grep -v sh
Powyższa "konstrukcja" zwróci listę uruchomionych procesów (ps -a), posortowaną alfabetycznie (sort), niezawierającą powtórzeń (uniq), oraz bez linii zawierających wzorzec sh (grep -v sh).
Do stworzenia nienazwanego potoku służy wywołanie systemowe pipe(). Prototyp funkcji bibliotecznej znajduje się w pliku nagłówkowym unistd.h i ma następującą postać:
int pipe(int fildes[2]);
Funkcja pipe() umieszcza dwa nowe deskryptory plików w tablicy fields[] (fields[0] – deskryptor pliku tylko do odczytu, fields[1] – deskryptor pliku tylko do zapisu) i zwraca 0 w przypadku powodzenia lub -1 w przypadku błędu.
Funkcja pipe() często używana jest w połączeniu z funkcją fork() w celu zapewnienia komunikacji między procesem macierzystym oraz jego procesami potomnymi.
[edytuj] Potok nazwany
Potok nazwany (lub łącze nazwane) jest to rozwinięcie idei potoku, polegające na stworzeniu specjalnego pliku, który ma służyć jako łącznik między procesami. Zapewnia to wygodny mechanizm przekazywania danych pomiędzy niespokrewnionymi ze sobą procesami.
W Uniksie do tworzenia potoków nazwanych stosuje się program mkfifo lub mknod.
$ mkfifo plik_fifo
$ mknod plik_fifo p
Z poziomu programu można skorzystać z następujących dwóch standardowych funkcji:
#include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *path, mode_t mode); int mknod(const char *path, mode_t mode, dev_t dev);
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
| Dostosuj wyszukiwarkÄ™ Google do siebie |
|
Google wprowadza do swojej wyszukiwarki możliwość samodzielnego porządkowania wyników.
|
| Dell i wzorzyste pokrywy netbooków |
|
Dell zaoferuje możliwość zakupu netbooków Mini wraz z oryginalnymi pokrywami. Na górnej klapie komputera można będzie umieścić wybrany wzór.
|
| AMD pracuje nad układami 32 nm |
|
I choć mogłoby się wydawać, że AMD w końcu dogoni Intela pod względem procesu produkcyjnego, to jednak tak się raczej nie stanie.
|
| Monty Python na YoutTube! Legalnie i za darmo |
|
Fani Latającego Cyrku Monty Pythona, będą mogli oglądać archiwalne nagrania za darmo, w dobrej jakości i co najważniejsze, zupełnie legalnie.
|
| Internet Explorer 8 dopiero na koniec 2009 roku |
|
Microsoft potwierdził, że pojawi się jeszcze jedna publiczna wersja testowa IE8, zanim przeglądarka ostatecznie ujrzy światło dzienne.
|