Potrebbe essere dovuto al buffer di fwrite che non viene svuotato. Prova a mettere un fflush(fpi) subito dopo la fwrite.