Я пытаюсь прочитать двоичный файл в Windows 7 с помощью программы, составленной MinGW. Бинарный файл имеет размер ~ 10 М, но моя программа может читать только 1000 байт, и он считает, что он достиг EOF.MinGW: чтение двоичных данных завершается
Вот код. Я уверен, что я делаю что-то глупое, но я просто не могу найти его.
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#define TS_FILE "foo.data"
int main(void)
{
int fd;
int r;
unsigned char buf[1024];
fd = open(TS_FILE, O_RDONLY|O_BINARY);
printf("fd: %d\n", fd);
if (fd == -1)
{
exit(0);
}
for (;;)
{
r = read(fd, buf, 1000);
if (r != 1000)
{
printf("read error. %d\n", r);
perror("read");
}
if (r == 0)
{
break;
}
}
close(fd);
}
Программа скажет, что читает 736 байт, и это EOF.
Может ли кто-нибудь сказать мне, что происходит? Благодаря!
Спасибо,