У меня есть файл, который мне нужно прочитать в буфер (char *), но проблема в том, что в файле есть несколько «забавных символов» между правильным текстом.

Поэтому, когда я пишу код, подобный следующему:
FILE *fp;
if((fp = fopen(".\\test.txt", "rt"))==NULL){
printf("Cannot open file2\n");
}
fseek(fp, 0, SEEK_END);
long int fsize = ftell(fp);
rewind(fp);
//char *buffer2 = malloc(fsize * sizeof(char));
buffer = malloc(fsize * sizeof(char));
fread(buffer, 1, fsize, fp);
buffer[fsize] = '\0';
fclose(fp);
printf("fsize = %i\n", fsize);
printf("Buffer = %s\n", buffer);
Распечатывает только первую часть текстового файла следующим образом:
Buffer = header
И, очевидно, останавливается на первом NUL-символе.
Есть ли способ прочитать весь буфер файла, включая забавные символы?
Или это не возможно в C?
FSIZE читается правильно, просто FREAD не читает весь буфер; - (
Любая помощь будет принята с благодарностью; -)
Спасибо
Линтон
ОБНОВЛЕНИЕ: ОК, я был немного глупым ..... если я записываю буфер в файл, в нем есть все, только если я записываю его на экран, он останавливается на нуле хорошо.