Linux Wiki
Advertisement
Nuvola apps kate
Ten artykuł wymaga poprawy – należy dodać przykład użycia pipe() w programie. Jeśli możesz, popraw go.

Potok (ang. pipeline lub krócej pipe) – jeden z podstawowych sposobów komunikacji międzyprocesowej występujący w systemach pochodzących od Uniksa, w tym w Linuksie. Polega on na połączeniu dwóch strumieni danych. Dane są pobierane z pierwszego z nich i przekazywane do drugiego. Zazwyczaj strumieniami tymi są standardowe wyjście i standardowe wejście.

Potoki w powłoce poleceń[]

Do tworzenia potoków przysyłających dane ze standardowego wyjścia jednego programu do standardowego wyjścia drugiego w powłodze poleceń używany jest znak |. Użycie to ma postać: <terminal> $ <aplikacja1> | <aplikacja2> </terminal> Przykładowo, próba wyświetlenia urządzeń podpiętych przez PCI przy użyciu polecenia lspci, wybranie z nich tylko linii zawierających ciąg VGA przu użyciu polecenia grep i czym wyświetlenie ich ma postać: <terminal> $ lspci | grep VGA </terminal> Możliwe jest również połączenie tym sposobem większej liczby aplikacji, np: <terminal> $ lspci | cat | grep VGA </terminal> Powyższy przykład wyświetli dokładnie to samo, co poprzedni - cat bez parametrów przekazuje po prostu zawartość ze standardowego wejścia na standardowe wyjście.

Potoki w programach[]

Do tworzenia potoku w oprogramowaniu służy wywołanie systemowe pipe() z pliku nagłówkowego <unistd.h>. Przyjmuje ono jeden argument, będący tablicą składającą się z dwóch deskryptorów plików.

Zobacz też[]

Advertisement