ops.....ho parlato troppo presto.............nel caso del codice precedente ho risolto, ma se voglio usare la fgets o la fgets+altra funzione
al posto della scanf, come dovrei fare?????.. mi spiego meglio adesso devo gestire una serie di input da tastiera che vengono salvate in un campo di una struct e poi inviate a un server, es:

codice:
while(scanf("%s", record.cognome) == -1){
                            if(errno != EINTR){
                                    printf("\nErrore scanf\n");
                                    chiusuraClient();
                            }
                    }
write(sock, record.cognome, COGNOME);
ho provato con questa soluzione:
codice:
 printf("\nInserisci cognome: ");fflush(stdout);
                    fgets(record.cognome,COGNOME,stdin);
                    if(record.cognome[COGNOME-1] != '\n') while(getchar() != '\n');
ma la cosa nn funziona......da quello che ho capito a parte il fatto che la scanf prende un testo formattato la fgets dovrebbe ricevere in più solo lo '\n', però c'è qulcosa che mi sfugge