fgets memorizza nella stringa anche il \n che termina la riga. Ti basta sostituire il \n in questione con un NUL per eliminare il problema:
.codice:res=fgets(buf, F, l); buf[strlen(buf)-1]=0;
Un consiglio: usa sempre le versioni sicure delle funzioni per lavorare sulle stringhe (quelle con la n nel nome, ad esempio strncpy, strncat, eccetera); meglio una stringa troncata che un buffer overflow.