pipe - crea una 'pipe'
#include int pipe(int filedes[2]);
La funzione pipe() crea una coppia di file descriptor, utilizzabili per una 'pipe'. I file descriptor vengono posti nell'array puntato da filedes.filedes[0] e' il file descriptor utilizzabile per la lettura. filedes[1] e' il file descriptor utilizzabile per la scrittura.
Una 'pipe' e' una sorta di 'tubo', nel quale un processo detto produttore scrive delle informazioni che devono essere acquisite da un secondo processo detto consumatore.
La realizzazione fisica di una 'pipe' puo' avvenire su un buffer di memoria, dell'ordine di anche solo 4KB.
Una volta che la 'pipe' sia stata riempita, il processo produttore potra' continuare a scrivere i dati, solamente se il processo consumatore abbia effettuato delle letture.
Se il processo consumatore preleva i dati piu' rapidamente di quanto il processo produttore ne possa scrivere, allora il processo consumatore si pone in pausa.
La condizione di fine file viene rilevata quando il processo consumatore ha terminato i dati da leggere e il processo produttore abbia (anche in un tempo precedente) chiuso la 'pipe'.
La funzione pipe() ritorna 0 in caso di successo; ritorna -1 e setta appropriatamente la variabile errno in caso di errore.
SVr4, SVID, AT&T, POSIX, X/OPEN, BSD 4.3
fork() popen() wait()
Indice linguaggio C |
Indice librerie C |
Umberto Zappi Home Page |
Indice funzioni C |