2013-04-07 65 views
0

我必須讀取一個png文件(二進制文件),我必須得出圖片的高度和寬度(從17開始並且一起長8bytes)。用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 
} 

readherelseekhere

相關問題