얘기는 몇번 들었습니다만... 결국 저에게도 해당되는 문제가 되었네요...
유닉스와 윈도우에서 int 형이랄지.. float형을 파일로 쓰고 읽고할때 방식이
다른가요? 그렇다고 여러분이 그러신것 같은데... 구체적으로는 잘 못들었네요.
따라사 유닉스에서 저장한 파일(텍스트파일이 아니라~) 을 윈도우(빌더같은데서)
읽으면 값이 이상한가요? 제가 간단하게 실험해봤을 때는 아무문제 없었는데...
해보니까 안되네요...
typedef struct {
int x, y; /* x: horizontal, y: vertical */
} MV;
이런식으로 정의된 struct에서 유닉스에서 작성된 파일을 피씨에서 읽었더니...
mv.x(MV mv[D[D[D[D[D[D [C[D( MV mv;) 값이 무진장 큰값이 나오더군요... 척봐도 잘 못나왔다는 느낌이
들 정도로요...
정확히 어떻게 다른지 아시는분 계시면 좀 알려주세요... 덤으로 어떻게 읽으면
정확히 읽을수 있는지도 알려주심 감사하겠습니다.
제가 읽은것은
FILE *mvfp;
register int ii;
if(!(mvfp = fopen(filename, "rb")))
{
printf("MRME_readMV: Cannot open %s!\n", filename);
exit(1);
}
for(ii = 0; ii < num_bands; ii++)
if( fread(mv[ii], sizeof(MV), num_blocks, mvfp) != num_blocks ) {
printf("Error in reading motion vector info. (ii=%d)\n", ii);
exit(1);
}
fclose(mvfp);
이렇게 했습니다.
감사합니다.
|