Ho risolto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Pensa che idiota, ci ho perso un giorno e mezzo.
In poche parole il client passa al server la struct con due nomi: file da cercare e pipe da creare. Solo che i campi nella struct del client avevano l'ordine file-pipe; nel server invece, pipe-file. Quindi la open non veniva fatta sulla fifo ma su di una stringa. Solo una cosa vorrei chiederti:
nel server estraggo il nome della pipe del client che, come ti dicevo, è una stringa in una struttura. Quindi ho:
codice:
typedef struct{
char nomePipe[20];
char nomeFile[20];
}messaggio
Ora, prima leggo il messaggio arrivato per poi aprire quella fifo identificata da nomePipe:
codice:
messaggio m;
int byte = read(fd,&m,sizeof(messaggio));
int wr = open(&m.nomePipe,O_WRONLY);
La sintassi della open è con &m.nomePipe oppure soltanto m.nomePipe?
Cmq ora funziona, grazie di tutto, sei stato molto gentile