Я пытаюсь прочитать весь файл JPG в двоичном режиме, используя Visual C ++. Код выглядит следующим образом:
FILE *fd = fopen("c:\\Temp\\img.jpg", "rb");
if(fd == NULL) {
cerr << "Error opening file\n";
return;
}
fseek(fd, 0, SEEK_END);
long fileSize = ftell(fd);
int *stream = (int *)malloc(fileSize);
cout << fileSize << '\n';
fseek(fd, 0, SEEK_SET);
int bytes_read = fread(stream, fileSize, 1, fd);
printf("%i\n", bytes_read);
fclose(fd);
Проблема в том, что bytes_read
всегда равен 1. Переменная fileSize
содержит правильный размер файла. Поэтому я не уверен, почему bytes_read
всегда равно 1 и не равно fileSize ..?