[완료] windows에서 파일 읽기

서지훈의 이미지

음..
_open(), _read()를 이용하여 _O_RDONLY로 파일을 읽는데,
파일 내용중에 0x1a를 만나면 eof로 인식하고 끝을 내는군요.
이런 황당한 일이...
물론 linux에서는 별다른 문제가 없는데...
혹시 이와 같은 경우는 어떻게 해결을 해야 할지...

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
 
 
 
#define MAX_BUFFER  (4096)
 
int main(int argc, char *argv[])
{
    char    buf[MAX_BUFFER];
    int     fd;
    int     n;
    int     i;
 
 
    fd = open( argv[1], _O_RDONLY );
    n = read( fd, buf, MAX_BUFFER );
 
 
    printf( "size = [%d]\n", n );
    for ( i = 0; i < n; ++i ) {
        printf( "[%02x]", buf[i] );
    }
    printf( "\n" );
 
 
 
 
    return 0;
}
File attachments: 
첨부파일 크기
Plain text icon 1_996_600_0.mlm_.txt0바이트
shlee의 이미지

파일 열때 _O_BINARY 플래그를 추가해서 열어보세요.

open( argv[1], _O_RDONLY | _O_BINARY );

서지훈의 이미지

아.!

감사합니다. ^^

#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);