MinGW でコンパイルされたプログラムを使用して、Windows 7 でバイナリ ファイルを読み込もうとしています。バイナリ ファイルのサイズは ~10M ですが、私のプログラムは 1000 バイト未満しか読み取ることができず、EOF に達したと見なされます。
これがコードです。私は愚かなことをしていると確信していますが、それを見つけることができないようです。
#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 であると言うでしょう。
誰かが私に何が起こっているのか教えてもらえますか? ありがとう!
ありがとう、