nikpez
Ominide
1 min. di lettura
Vota 3 / 5

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.
Named pipe

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
}

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community