2013-04-07 5 views
0

필자는 이진 파일에서 png 파일을 읽어야하며 그림의 높이와 너비를 함께 가져야합니다 (함께 시작하는 길이는 17 및 긴 8 바이트 임). fseek를 사용하여 파일의 특정 부분을 읽는 중

은 내가
FILE* picture = fopen("test.png","rb"); 
fseek(picture, 16 , SEEK_SET); 

int counter = 0; 
while(counter < 8){ 
    fscanf(picture, "%d", temp[counter]); 
    counter++; 
} 

하지만 행운

답변

0

당신은 파일 라이브러리를 사용하여 바이너리 파일을 읽어 본 적이해야하지만, 오히려 시스템 호출 readwrite을 시도했다.

void* buf = malloc(1024); 
memset(buf,0,1024); 

int picturefd = open("test.png",O_RDONLY); 
lseek(picturefd, 16 , SEEK_SET); 

if(read(picturefd, buf, 8) < 8){ 
//failed to read or eof reached 
} 

lseek에 대한 readhere에 대한 here를 참조하십시오.

관련 문제