Pipe

Vedi anche named pipe (o FIFO).

Nella programmazione di computer, specialmente nei sistemi operativi UNIX, una pipe è una tecnica per passare informazioni da un processo di programma a un altro. A differenza di altre forme di comunicazione tra processi (IPC), una pipe è solo una comunicazione unidirezionale. Fondamentalmente, una pipe passa un parametro come l'output di un processo a un altro processo che lo accetta come input. Il sistema conserva temporaneamente le informazioni convogliate fino a quando non vengono lette dal processo di ricezione.

Utilizzando una shell UNIX (l'interfaccia di comando interattiva UNIX), una pipe viene specificata in una riga di comando come una semplice barra verticale (|) tra due sequenze di comandi. L'output o il risultato della prima sequenza di comandi viene utilizzato come input per la seconda sequenza di comandi. Il tubo la chiamata di sistema viene utilizzata in modo simile all'interno di un programma.

Per la comunicazione a due vie tra i processi, è possibile configurare due tubi, uno per ciascuna direzione. Una limitazione delle pipe per la comunicazione tra processi è che i processi che utilizzano pipe devono avere un processo genitore comune (ovvero condividere un processo comune di apertura o di avvio ed esistere come risultato di un forcella chiamata di sistema da un processo genitore).

Una pipe ha una dimensione fissa e di solito è di almeno 4,096 byte.