Как видно из названия, freads, по-видимому, читает только первые 64 символа. Соответствующий код:fread только чтение 64 байта?
FILE* sigD = fopen("signature", "r");
char *sig[255];
fread(sig, 255, 255, sigD);
close(sigD);
fputs(sig, stdout);
Консоль вывода:
[email protected]:~$ ./a.out --has-sig
;2F*S|tr;;E9;Yb=R6)[email protected]`#NzLy<}[email protected]+uvH${3Et&9K&-0~%D{1
[email protected]:~$
[email protected]:~$ cat signature
;2F*S|tr;;E9;Yb=R6)[email protected]`#NzLy<}[email protected]+uvH${3Et&9K&-0~%D{1N{7ry:-B9b:kGB=Gkk9V+Cc$8a&35W{15Q~#-+PMeqa;#[email protected]>R!V#[email protected](Xj<a,^B)qJ5D&bON//?%/!G)XA&m|8:1mVHmx{7nQoRJ%v{(K:;JtX2hOm/dhVm9mnuDMSbQX55ouVnmECbA`/`!?=Mh0Ab^@vk*K*HG5$omu6716/Loh1Ht
ч Как что журнал показывает, есть 254 символов в файле, но только 64 становятся читать.
РЕДАКТИРОВАТЬ: проблема была не с fread, я случайно записал нулевые терминаторы в файл.
Я полагаю, что вместо этого вы должны иметь fread (sig, sizeof (char), 255, sigD). –
Почему вы не потрудились проверить возвращаемое значение из 'fread'? – Neil