Si, ho sostituito come mi hai spiegato prima,ma nulla.Cmq ho pensato un pò a come risolvere il problema originario:
almeno per quanto riguarda il server
-creo una struttura del genere
codice:
struct richiesta{
char titolo;
pid_t pid;
char msg[30];
}msg;
-creo e apro in lettura la well know FIFO per leggere la richiesta del client
codice:
mkfifo("C_S.FIFO",0666); //well know fifo
while(1){
fd=open("C_S.FIFO",O_RDONLY);
if(read(fd,&msg,sizeof(msg))<=0) //il server apre la well know fifo in lettura per leggere la richiesta dal client
printf("Errore lettura da Fifo\n");
if(close(fd)<0)
printf("Errore chiusura fd\n");
-apro il file libri in lettura
codice:
fp=fopen("libri","r");
if(fp==NULL)printf("Errore lettura file\n");
-scorro le stringhe del file con la fgets() e le comparo con la richiesta del client
codice:
while(!feof(fd)){
if(!fgets(s,100,fp))printf("Errore");
if(strcmp(msg.titolo,s)==0)break; //questa dovrebbe essere la stringa che cerco
}
-non mi resta che scriverla sulla fifo di ritorno
Non so se va bene,sicuramente ho commesso qualche banalità.Ti ringrazio ancora per l'aiuto.