2
MinGW에서 컴파일 한 프로그램으로 Windows 7에서 이진 파일을 읽으려고합니다. 이진 파일 크기는 ~ 10M이지만 프로그램은 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가됩니다.
누군가 무슨 일이 일어나는지 말해 줄 수 있습니까? 감사!
감사합니다.