fscanf si aspetta un input formattato, per quello si incasina.
Avresti dovuto scrivere:
per leggere correttamente con la fscanf.codice:for(j = 0; j < BUF_SIZE; j++) fprintf(fp, "%hd\n", BUFFER[j]);
L'accoppiata fwrite - fread (come indicato sopra) risolve il problema.