Concetti Chiave
- Il codice fornisce due programmi separati per inviare e ricevere dati attraverso una named pipe chiamata "fileFIFO".
- Nel programma di invio, i dati vengono letti dall'input standard e scritti nella pipe usando la funzione `write()`.
- Nel programma di ricezione, i dati vengono letti dalla pipe e stampati a schermo con la funzione `read()`.
- Entrambi i programmi operano in un ciclo infinito, continuando a inviare e ricevere dati finché non vengono interrotti.
- Il codice include il controllo degli errori per l'apertura della pipe, interrompendo l'esecuzione se questa fallisce.
PGM PER INVIARE DATI
#include
#include
#include
#include
#include
#include
#define DIM_MAX 40
int main(int argc, char** argv) {
char temp[DIM_MAX];
int fd;
//Apertura named pipe
fd = open("fileFIFO", O_WRONLY);
if (fd==-1)
return 1;
while (1) {
printf("Cosa spedire: ");
fgets(temp, DIM_MAX, stdin);
//Scrittura su pipe
write(fd, temp, DIM_MAX);
}
//close(pipe) se non ci fosse loop sopra
}
PGM PRE RICEVERE DATI
#include
#include
#include
#include
#include
#include
#define DIM_MAX 40
int main(int argc, char** argv) {
char temp[DIM_MAX];
int fd;
//Apertura named pipe
fd = open("fileFIFO", O_RDONLY|O_ASYNC);
if (fd==-1)
return 1;
while (1) {
printf ("In attesa...\n");
int retVal=read(fd, temp, DIM_MAX);
printf ("Ricevuto: %s - retVal=%d\n",temp,retVal);
}
//close(pipe) se non ci fosse loop sopra
}