2015-11-15 56 views
-1

我用tlv格式讀取xml文件,xml文件有593字節,我讀下面的代碼。第一個512字節爲真,但其餘字節爲假。我讀剩餘字節是00.用tlv格式讀取xml文件

int fd,ret; 
unsigned char *filebuffer[6400]; 

fd = open("filename" , O_RDONLY); 
printf("file open return value : %d \n", fd); 
if (fd == -1) 
{ 
    printf("Error in openning the file!\n"); 
    exit(0); 
} 
//read the file 
int i = 0; 
do { 
    ret = read(fd,&filebuffer[i],512); 
    printf("file read return value : %d \n", ret); 
    if (ret == -1) 
    { 
     printf("Error in reading!\n"); 
     exit(0); 
    } 
    i += ret; 
    printf("i = %d, ret = %d",i,ret); 

} while (ret > 0); 

int k; 
char tmp[6400]; 
memcpy(tmp,filebuffer,i); 
printf("file buffer\n"); 
for (k = 0; k < i; ++k) { 
    printf("%02x",tmp[i]); 
} 

close(fd);} 

我填充文件緩衝與我正在讀取XML文件。 filebuffer示例; filebuffer:1F0583212 .....(512 byte)000000

回答

1

filebuffer的定義不正確。將其更改爲:

unsigned char filebuffer[6400];