4.5.6 Named pipe (FIFO)
Una named pipe � un file che agisce come una pipe. Inserite qualcosa in un
file da un lato ed esce dall'altro. Da qui il nome FIFO, o First-In-First-Out:
la prima cosa che infilate nella pipe � anche la prima ad uscirne.
Se avviate un processo di scrittura verso una named pipe, il processo non
terminer� finch� l'informazione che viene scritta non � letta dalla pipe. Se
avviate un processo di lettura dalla pipe, il processo aspetter� prima di
terminare che non ci sia altro da leggere. Le dimesioni della pipe sono sempre
zero --- non memorizza dati, si limita ad unire due processi, come il carattere
| della shell. Comunque, poich� questa pipe ha un nome, i due
processi non devono necessariamente stare sulla riga di comando, n� essere
lanciati dallo stesso utente.
Provate facendo quanto segue:
$ cd; mkfifo miapipe
$ echo "hello" >miapipe & # gira nello sfondo
[1] 5952
$ ls -l miapipe
prw-r--r-- 1 penguin penguin 0 2003-11-06 23:18 miapipe
$ cat miapipe
hello
[1]+ Done echo hello >miapipe
$ ls miapipe
prw-r--r-- 1 penguin penguin 0 2003-11-06 23:20 miapipe
$ rm miapipe