informatica:sol:laboratorio17:esercitazionib:fifoexample
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Prossima revisione | Revisione precedente | ||
| informatica:sol:laboratorio17:esercitazionib:fifoexample [27/04/2017 alle 06:05 (9 anni fa)] – creata Massimo Torquati | informatica:sol:laboratorio17:esercitazionib:fifoexample [27/04/2017 alle 06:56 (9 anni fa)] (versione attuale) – Massimo Torquati | ||
|---|---|---|---|
| Linea 20: | Linea 20: | ||
| /* | /* | ||
| * In un singolo messaggio vogliamo inviare sia il comando da eseguire | * In un singolo messaggio vogliamo inviare sia il comando da eseguire | ||
| - | * che il nome della fifo su cui vogliamo ottenere il risultato. | + | * che il nome della FIFO su cui vogliamo ottenere il risultato. |
| */ | */ | ||
| struct message { | struct message { | ||
| Linea 42: | Linea 42: | ||
| #include " | #include " | ||
| - | // nome della fifo privata | + | // nome della FIFO privata |
| char fifo_name[F_SIZE]; | char fifo_name[F_SIZE]; | ||
| void cleanup() { | void cleanup() { | ||
| Linea 63: | Linea 63: | ||
| } | } | ||
| - | // apro la fifo pubblica in sola scrittura | + | // apro la FIFO pubblica in sola scrittura |
| SYSCALL(publicfifo, | SYSCALL(publicfifo, | ||
| | | ||
| Linea 83: | Linea 83: | ||
| SYSCALL(n, write(publicfifo, | SYSCALL(n, write(publicfifo, | ||
| - | // opro la fifo privata in sola lettura aspettando che il server la apra in scrittura | + | // apro la FIFO privata in sola lettura aspettando che il server la apra in scrittura |
| SYSCALL(privatefifo, | SYSCALL(privatefifo, | ||
| Linea 121: | Linea 121: | ||
| static char buffer[PIPE_BUF]; | static char buffer[PIPE_BUF]; | ||
| | | ||
| - | /*creating the PUBLIC fifo*/ | + | /* creo la FIFO pubblica |
| if ((mkfifo(PUBLIC, | if ((mkfifo(PUBLIC, | ||
| perror(" | perror(" | ||
| Linea 128: | Linea 128: | ||
| | | ||
| int publicfifo; | int publicfifo; | ||
| + | | ||
| // apertura in sola lettura per ricevere i comandi dai clients, aspetto che | // apertura in sola lettura per ricevere i comandi dai clients, aspetto che | ||
| - | // almeno uno dei client apra la fifo in scrittura | + | // almeno uno dei client apra la FIFO in scrittura |
| SYSCALL(publicfifo, | SYSCALL(publicfifo, | ||
| - | // apro la fifo in scrittura per evitare di ricevere EOF sulla fifo pubblica | + | // apro la FIFO in scrittura per evitare di ricevere EOF sulla FIFO pubblica |
| // che rimane sempre aperta | // che rimane sempre aperta | ||
| int notused; | int notused; | ||
| Linea 139: | Linea 140: | ||
| int n, done; | int n, done; | ||
| SYSCALL(n, read(publicfifo, | SYSCALL(n, read(publicfifo, | ||
| - | if (n == 0) break; // ho letto EOF | + | if (n == 0) break; // ho letto End-Of-File (EOF), esco |
| n=0, done=0; | n=0, done=0; | ||
| Linea 150: | Linea 151: | ||
| int channel[2]; | int channel[2]; | ||
| int r; | int r; | ||
| - | SYSCALL(r, | + | SYSCALL(r, |
| char *args[MAXARGS]; | char *args[MAXARGS]; | ||
informatica/sol/laboratorio17/esercitazionib/fifoexample.1493273103.txt.gz · Ultima modifica: 27/04/2017 alle 06:05 (9 anni fa) da Massimo Torquati
